/* EZBETAK Core - functional UI. Every selector is prefixed .ezb- so it cannot collide with themes/plugins.
   Colours/radius come from CSS custom properties (the theme sets them; fallbacks keep it usable on any theme).
   Logical properties (inline-start/end) make it RTL/LTR neutral. */
.ezb, .ezb-slot, .ezb-card, .ezb-filters, .ezb-ad, .ezb-pager { --_forest: var(--ezb-forest, #0A6847); --_gold: var(--ezb-gold, #F2A413); --_ivory: var(--ezb-ivory, #F4F7F5); --_ink: var(--ezb-ink, #10231b); --_muted: var(--ezb-muted, #5d6b66); --_line: var(--ezb-line, #dcd8cb); --_r: var(--ezb-radius, 16px); }
.ezb { color: var(--_ink); line-height: 1.7; box-sizing: border-box; }
.ezb *, .ezb *::before, .ezb *::after { box-sizing: inherit; }
.ezb h1, .ezb h2, .ezb h3 { line-height: 1.3; color: var(--_forest); }
.ezb-muted { color: var(--_muted); font-size: .92em; }
.ezb .screen-reader-text, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ezb-hp { position: absolute; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* buttons */
.ezb-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4em; min-height: 44px; padding: .55em 1.2em; border-radius: 999px; border: 2px solid var(--_forest); background: transparent; color: var(--_forest); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; transition: background .2s, color .2s, transform .15s; }
.ezb-btn:hover { background: var(--_forest); color: #fff; }
.ezb-btn:focus-visible, .ezb a:focus-visible, .ezb input:focus-visible, .ezb select:focus-visible, .ezb textarea:focus-visible, .ezb summary:focus-visible { outline: 3px solid var(--_gold); outline-offset: 2px; }
.ezb-btn--primary { background: var(--_forest); color: #fff; }
.ezb-btn--primary:hover { background: #0f2c24; }
.ezb-btn--gold { background: var(--_gold); border-color: var(--_gold); color: #1d1a12; }
.ezb-btn--gold:hover { background: #b09457; color: #1d1a12; }
.ezb-btn--ghost { border-color: var(--_line); }
.ezb-btn--sm { min-height: 36px; padding: .25em .9em; font-size: .9em; }
.ezb-btn[disabled] { opacity: .5; cursor: not-allowed; }

/* forms */
.ezb-field { display: flex; flex-direction: column; gap: .3em; margin-block-end: .9em; }
.ezb-field > span { font-weight: 700; font-size: .93em; }
.ezb-field input, .ezb-field select, .ezb-field textarea { width: 100%; min-height: 44px; padding: .55em .8em; border: 1.5px solid var(--_line); border-radius: 12px; background: #fff; font: inherit; color: inherit; }
.ezb-field--grow { flex: 1 1 220px; }
.ezb-check { display: inline-flex; gap: .5em; align-items: center; margin-inline-end: 1em; min-height: 36px; }
.ezb-check input { width: 20px; height: 20px; }
.ezb-err { color: #a12622; font-weight: 600; }
.ezb-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0 1rem; }
.ezb-form fieldset { border: 0; padding: 0; margin: 0 0 1.4rem; }
.ezb-form legend { font-weight: 800; color: var(--_forest); margin-block-end: .6rem; font-size: 1.1em; }
.ezb-form__actions { display: flex; gap: .6rem; flex-wrap: wrap; }
.ezb-inline { display: inline-block; margin: 0; }
.ezb-thumbs { display: flex; flex-wrap: wrap; gap: .8rem; list-style: none; padding: 0; }
.ezb-thumbs img { border-radius: 10px; }

/* panels, notices, chips */
.ezb-panel { background: #fff; border: 1px solid var(--_line); border-radius: var(--_r); padding: 1.4rem; }
.ezb-notice { padding: .8rem 1rem; border-radius: 12px; margin-block: .8rem; border: 1px solid var(--_line); background: var(--_ivory); }
.ezb-notice--ok { border-color: #4f8a64; background: #eaf5ee; }
.ezb-notice--err { border-color: #c4524d; background: #fbeceb; }
.ezb-notice--warn { border-color: var(--_gold); background: #fbf5e6; }
.ezb-note { display: block; color: #8a5a12; font-weight: 400; }
.ezb-chip { display: inline-block; padding: .1em .7em; border-radius: 999px; background: var(--_ivory); border: 1px solid var(--_line); font-size: .8em; font-weight: 700; }
.ezb-chip--approved, .ezb-chip--active, .ezb-chip--ok, .ezb-chip--live { background: #e3f2e8; border-color: #4f8a64; }
.ezb-chip--pending, .ezb-chip--review, .ezb-chip--changes, .ezb-chip--in_review, .ezb-chip--paid, .ezb-chip--demo { background: #fbf5e6; border-color: var(--_gold); }
.ezb-chip--rejected, .ezb-chip--cancelled, .ezb-chip--expired, .ezb-chip--refunded { background: #fbeceb; border-color: #c4524d; }

/* tables */
.ezb-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ezb-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.ezb-table th, .ezb-table td { padding: .7rem .8rem; border-block-end: 1px solid var(--_line); text-align: start; vertical-align: top; }
.ezb-table thead th { background: var(--_ivory); font-size: .9em; }
.ezb-actions { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }

/* listings grid + cards */
.ezb-filters { background: #fff; border: 1px solid var(--_line); border-radius: var(--_r); padding: 1rem; margin-block-end: 1.2rem; }
.ezb-filters__row { display: flex; flex-wrap: wrap; gap: .8rem 1rem; align-items: end; }
.ezb-filters__row .ezb-field { flex: 1 1 160px; margin: 0; }
.ezb-filters__more { margin-block: .8rem; }
.ezb-filters__more summary { cursor: pointer; font-weight: 700; padding: .4rem 0; }
.ezb-filters__actions { display: flex; gap: .6rem; }
.ezb-count { color: var(--_muted); }
.ezb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 1.2rem; }
.ezb-grid__wide { grid-column: 1 / -1; }
.ezb-grid__wide:empty { display: none; }
.ezb-card { background: #fff; border: 1px solid var(--_line); border-radius: var(--_r); overflow: hidden; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.ezb-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(24, 63, 53, .12); }
.ezb-card__media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--_ivory); }
.ezb-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ezb-card__ph { display: grid; place-items: center; height: 100%; font-size: 48px; }
.ezb-card__media .ezb-chip { position: absolute; inset-block-start: .6rem; inset-inline-start: .6rem; background: rgba(255, 255, 255, .92); }
.ezb-card__media .ezb-chip--tx { inset-inline-start: auto; inset-inline-end: .6rem; background: var(--_gold); border-color: var(--_gold); }
.ezb-card__body { padding: .9rem 1rem 1.1rem; display: flex; flex-direction: column; gap: .15rem; }
.ezb-card__title { margin: 0; font-size: 1.05rem; }
.ezb-card__title a { color: inherit; text-decoration: none; }
.ezb-card__title a:hover { text-decoration: underline; }
.ezb-card__where, .ezb-card__meta { margin: 0; color: var(--_muted); font-size: .9em; display: flex; gap: .8rem; }
.ezb-card__price { margin: .3rem 0 0; font-weight: 800; color: var(--_forest); font-size: 1.1rem; }
.ezb-empty { text-align: center; padding: 2rem 1rem; border: 2px dashed var(--_line); border-radius: var(--_r); }
.ezb-pager { display: flex; gap: .4rem; justify-content: center; margin-block: 1.4rem; flex-wrap: wrap; }
.ezb-pager__n { min-width: 40px; height: 40px; display: grid; place-items: center; border: 1.5px solid var(--_line); border-radius: 10px; text-decoration: none; color: inherit; }
.ezb-pager__n.is-current { background: var(--_forest); color: #fff; border-color: var(--_forest); }

/* sponsored slots */
/* sponsored slots: clearly labelled, compact, consistent with listing cards */
.ezb-slot { margin-block: 1.2rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 1rem; }
.ezb-slot:empty { display: none; }
.ezb-ad { position: relative; border: 1px solid var(--_line); border-radius: var(--_r); overflow: hidden; background: #fff; box-shadow: 0 1px 2px rgba(16, 35, 27, .04); transition: box-shadow .25s, transform .2s; }
.ezb-ad:hover { box-shadow: 0 16px 34px rgba(16, 35, 27, .12); transform: translateY(-2px); }
.ezb-ad__badge { position: absolute; z-index: 2; inset-block-start: .6rem; inset-inline-start: .6rem; background: rgba(16, 35, 27, .78); color: #fff; padding: .1em .75em; border-radius: 8px; font-size: .74rem; font-weight: 600; backdrop-filter: blur(4px); }
.ezb-ad__link { display: flex; flex-direction: column; color: inherit; text-decoration: none; height: 100%; }
.ezb-ad__link img { width: 100%; height: 180px; display: block; object-fit: cover; }
.ezb-ad__txt { display: flex; flex-direction: column; padding: .9rem 1.1rem 1.1rem; gap: .25rem; flex: 1; }
.ezb-ad__txt strong { font-size: 1rem; line-height: 1.5; }
.ezb-ad__txt span { color: var(--_muted); font-size: .88rem; }
.ezb-ad__txt em { font-style: normal; font-weight: 700; color: var(--_forest); margin-block-start: auto; padding-block-start: .4rem; }
.ezb-ad__txt em::after { content: ' ←'; }
.ezb-slot--home_hero_banner, .ezb-slot--category_banner, .ezb-slot--home_strip, .ezb-slot--results_inline, .ezb-slot--results_sidebar, .ezb-slot--c4_reveal { grid-template-columns: 1fr; }
.ezb-slot--home_hero_banner .ezb-ad__link, .ezb-slot--category_banner .ezb-ad__link, .ezb-slot--home_strip .ezb-ad__link, .ezb-slot--results_inline .ezb-ad__link { flex-direction: row; align-items: stretch; }
.ezb-slot--home_hero_banner .ezb-ad__link img, .ezb-slot--category_banner .ezb-ad__link img, .ezb-slot--home_strip .ezb-ad__link img, .ezb-slot--results_inline .ezb-ad__link img { width: 42%; height: auto; min-height: 150px; max-height: 230px; flex: none; }
.ezb-slot--home_hero_banner .ezb-ad__txt, .ezb-slot--category_banner .ezb-ad__txt, .ezb-slot--home_strip .ezb-ad__txt, .ezb-slot--results_inline .ezb-ad__txt { justify-content: center; }
.ezb-slot--home_hero_banner .ezb-ad__txt strong { font-size: 1.35rem; }
@media (max-width: 640px) { .ezb-slot--home_hero_banner .ezb-ad__link, .ezb-slot--category_banner .ezb-ad__link, .ezb-slot--home_strip .ezb-ad__link, .ezb-slot--results_inline .ezb-ad__link { flex-direction: column; } .ezb-slot--home_hero_banner .ezb-ad__link img, .ezb-slot--category_banner .ezb-ad__link img, .ezb-slot--home_strip .ezb-ad__link img, .ezb-slot--results_inline .ezb-ad__link img { width: 100%; height: 170px; max-height: none; } }

/* dashboard */
.ezb-dash { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 1.6rem; align-items: start; }
.ezb-dash__nav { background: var(--_forest); color: #fff; border-radius: var(--_r); padding: 1.1rem; position: sticky; inset-block-start: 1rem; }
.ezb-dash__nav ul { list-style: none; margin: 0; padding: 0; }
.ezb-dash__nav a { display: block; color: #fff; text-decoration: none; padding: .55rem .8rem; border-radius: 10px; }
.ezb-dash__nav a:hover, .ezb-dash__nav a[aria-current] { background: rgba(255, 255, 255, .14); }
.ezb-dash__nav a[aria-current] { box-shadow: inset 3px 0 var(--_gold); }
.ezb-dash__who { margin: 0 0 .8rem; display: flex; flex-direction: column; gap: .3rem; }
.ezb-dash__who .ezb-chip { align-self: flex-start; color: var(--_ink); }
.ezb-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; margin-block: 1rem; }
.ezb-stat { background: #fff; border: 1px solid var(--_line); border-radius: var(--_r); padding: 1rem; text-decoration: none; color: inherit; display: flex; flex-direction: column; }
.ezb-stat strong { font-size: 1.8rem; color: var(--_forest); line-height: 1.1; }
.ezb-spark { width: 100%; height: 34px; margin-block-start: .4rem; }
.ezb-booking { border: 1px solid var(--_line); border-radius: var(--_r); padding: 1rem; margin-block: .8rem; background: #fff; }
.ezb-booking header { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.ezb-creative { margin-block-start: .8rem; }
.ezb-auth__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 1.4rem; }

/* booking screen */
.ezb-book { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, 1fr); gap: 1.4rem; align-items: start; }
.ezb-book__tabs { display: flex; gap: .4rem; flex-wrap: wrap; margin-block-end: .6rem; }
.ezb-book__tabs .is-on { background: var(--_forest); color: #fff; }
.ezb-book__frame { border: 2px solid var(--_line); border-radius: var(--_r); overflow: hidden; background: #fff; }
.ezb-book__frame iframe { width: 100%; height: 520px; border: 0; display: block; }
.ezb-dl dt { font-weight: 800; margin-block-start: .5rem; }
.ezb-dl dd { margin: 0; color: var(--_muted); }
.ezb-cal__head { display: flex; justify-content: space-between; align-items: center; margin-block: .6rem; }
.ezb-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.ezb-cal__wk { text-align: center; font-size: .8em; color: var(--_muted); font-weight: 700; }
.ezb-cal__day { min-height: 40px; border: 1.5px solid var(--_line); border-radius: 10px; background: #fff; font: inherit; cursor: pointer; }
.ezb-cal__day.is-ok { border-color: #4f8a64; background: #eaf5ee; }
.ezb-cal__day.is-few { border-color: var(--_gold); background: #fbf5e6; }
.ezb-cal__day.is-full, .ezb-cal__day.is-past { background: #f1efe8; color: #9aa09c; cursor: not-allowed; text-decoration: line-through; }
.ezb-cal__day.is-range { background: #cfe6d6; }
.ezb-cal__day.is-start { background: var(--_forest); color: #fff; }
.ezb-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-inline: .3em .2em; }
.ezb-dot--ok { background: #4f8a64; } .ezb-dot--few { background: var(--_gold); } .ezb-dot--no { background: #c9c4b3; }
.ezb-quote__price { font-size: 1.6rem; font-weight: 800; color: var(--_forest); margin: 0; }

/* chat */
.ezb-chat { border: 1px solid var(--_line); border-radius: var(--_r); background: #fff; max-width: 720px; margin-inline: auto; }
.ezb-chat__head { display: flex; justify-content: space-between; gap: .6rem; flex-wrap: wrap; padding: .9rem 1rem; border-block-end: 1px solid var(--_line); }
.ezb-chat__log { height: 340px; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .6rem; }
.ezb-msg { max-width: 85%; padding: .6rem .9rem; border-radius: 14px; background: var(--_ivory); }
.ezb-msg p { margin: 0 0 .3rem; white-space: pre-wrap; }
.ezb-msg--u { align-self: flex-end; background: var(--_forest); color: #fff; }
.ezb-chat__form { display: flex; gap: .5rem; padding: .8rem 1rem; border-block-start: 1px solid var(--_line); }
.ezb-chat__form input { flex: 1; min-width: 0; min-height: 44px; border: 1.5px solid var(--_line); border-radius: 999px; padding-inline: 1rem; font: inherit; }

@media (max-width: 900px) {
	.ezb-dash, .ezb-book { grid-template-columns: 1fr; }
	.ezb-dash__nav { position: static; }
	.ezb-dash__nav ul { display: flex; flex-wrap: wrap; gap: .3rem; }
	.ezb-book__frame iframe { height: 380px; }
}
@media (prefers-reduced-motion: reduce) { .ezb-card, .ezb-btn { transition: none; } .ezb-card:hover { transform: none; } }

/* ---- V2 marketplace card + filters (property-portal style) ---- */
.ezb .ezb-grid, .ezb-grid { gap: 1.25rem; }
.ezb-card { background: #fff; border: 1px solid var(--_line); border-radius: var(--_r); overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 1px 2px rgba(16, 35, 27, .04); transition: transform .2s, box-shadow .25s, border-color .2s; }
.ezb-card:hover { transform: translateY(-3px); box-shadow: 0 18px 38px rgba(16, 35, 27, .12); border-color: transparent; }
.ezb-card.is-featured { border-color: var(--_gold); box-shadow: 0 0 0 1px var(--_gold), 0 8px 22px rgba(242, 164, 19, .14); }
.ezb-card__media { position: relative; display: block; aspect-ratio: 16 / 11; background: linear-gradient(135deg, #dfeee6, #c9e0d3); overflow: hidden; }
.ezb-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.ezb-card:hover .ezb-card__media img { transform: scale(1.05); }
.ezb-card__badges { position: absolute; inset-block-start: .7rem; inset-inline-start: .7rem; display: flex; gap: .4rem; flex-wrap: wrap; }
.ezb-badge { display: inline-flex; align-items: center; gap: .25em; padding: .2em .75em; border-radius: 8px; font-size: .78rem; font-weight: 700; line-height: 1.5; background: rgba(255, 255, 255, .95); color: var(--_ink); box-shadow: 0 1px 4px rgba(0, 0, 0, .12); }
.ezb-badge--feat { background: var(--_gold); color: #231800; }
.ezb-badge--tx { background: var(--_forest); color: #fff; }
.ezb-card__photos { position: absolute; inset-block-end: .6rem; inset-inline-end: .6rem; display: inline-flex; align-items: center; gap: .3em; padding: .15em .6em; border-radius: 8px; background: rgba(16, 35, 27, .72); color: #fff; font-size: .78rem; }
.ezb-card__ph { display: grid; place-items: center; height: 100%; font-size: 52px; }
.ezb-card__body { padding: 1rem 1.1rem 1.1rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.ezb-card__price { margin: 0; display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.ezb-card__price strong { font-size: 1.3rem; font-weight: 700; color: var(--_forest); letter-spacing: -.01em; }
.ezb-card__price small { color: var(--_muted); font-size: .85rem; }
.ezb-card__title { margin: 0; font-size: 1rem; line-height: 1.55; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 3.1em; }
.ezb-card__title a { color: var(--_ink); text-decoration: none; }
.ezb-card__title a:hover { color: var(--_forest); }
.ezb-card__where { margin: 0; display: flex; gap: .35rem; align-items: center; color: var(--_muted); font-size: .9rem; }
.ezb-card__where svg, .ezb-card__specs svg { color: var(--_forest); flex: none; }
.ezb-card__specs { list-style: none; margin: .1rem 0 0; padding: .7rem 0 0; border-block-start: 1px dashed var(--_line); display: flex; gap: 1rem; flex-wrap: wrap; font-size: .88rem; color: var(--_ink); }
.ezb-card__specs li { display: inline-flex; align-items: center; gap: .35rem; }
.ezb-card__adv { margin: auto 0 0; padding-block-start: .6rem; display: flex; align-items: center; gap: .5rem; font-size: .82rem; color: var(--_muted); }
.ezb-card__av { width: 24px; height: 24px; border-radius: 50%; background: var(--_forest); color: #fff; display: grid; place-items: center; font-size: .75rem; font-weight: 700; }
.ezb-filters { background: #fff; border: 1px solid var(--_line); border-radius: var(--_r); padding: 1.1rem 1.2rem; margin-block: 1rem 1.4rem; box-shadow: 0 6px 24px rgba(16, 35, 27, .06); }
.ezb-filters .ezb-field > span { font-size: .8rem; color: var(--_muted); font-weight: 600; }
.ezb-filters .ezb-field input, .ezb-filters .ezb-field select { background: var(--_ivory); border-color: transparent; border-radius: 12px; }
.ezb-filters .ezb-field input:focus, .ezb-filters .ezb-field select:focus { background: #fff; border-color: var(--_forest); }
.ezb-filters__actions { margin-block-start: .6rem; }
.ezb-btn--primary { background: var(--_forest); border-color: var(--_forest); color: #fff; }
.ezb-btn--primary:hover { filter: brightness(.9); background: var(--_forest); }
.ezb-count { font-weight: 600; color: var(--_ink); margin-block: 0 .8rem; }
.ezb-pager { display: flex; gap: .4rem; justify-content: center; margin-block: 1.6rem; }
.ezb-pager__n { min-width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; border: 1px solid var(--_line); background: #fff; text-decoration: none; color: var(--_ink); font-weight: 600; }
.ezb-pager__n.is-current { background: var(--_forest); color: #fff; border-color: var(--_forest); }
