@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap");

:root {
  --lbd-primary: #183e75;
  --lbd-accent: #f4b223;
  --lbd-ink: #10233f;
  --lbd-muted: #687489;
  --lbd-line: #e6eaf0;
  --lbd-bg: #f5f7fa;
  --lbd-white: #fff;
  --lbd-success: #138a58;
  --lbd-radius: 18px;
  --lbd-radius-sm: 10px;
  --lbd-radius-md: 14px;
  --lbd-radius-lg: 22px;
  --lbd-shadow: 0 18px 50px rgba(16, 35, 63, .10);
  --lbd-shadow-xs: 0 1px 2px rgba(16, 35, 63, .06);
  --lbd-shadow-sm: 0 6px 18px -6px rgba(16, 35, 63, .12);
  --lbd-shadow-md: 0 16px 36px -10px rgba(16, 35, 63, .20);
  --lbd-shadow-lg: 0 28px 60px -16px rgba(16, 35, 63, .28);
  --lbd-font-display: "Plus Jakarta Sans", Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lbd-font-body: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lbd-ease: cubic-bezier(.16, 1, .3, 1);
}

.lbd, .lbd * { box-sizing: border-box; }
.lbd { color: var(--lbd-ink); font-family: var(--lbd-font-body); font-size: 16px; line-height: 1.55; }
.lbd h1, .lbd h2, .lbd h3, .lbd h4 { font-family: var(--lbd-font-display); }
.lbd img { display: block; max-width: 100%; }
.lbd a { color: inherit; text-decoration: none; transition: color .18s ease; }
.lbd button, .lbd input, .lbd select, .lbd textarea { font: inherit; }
.lbd button, .lbd select { cursor: pointer; }
.lbd button, .lbd a { transition: transform .2s var(--lbd-ease), box-shadow .2s var(--lbd-ease), background-color .2s ease, border-color .2s ease, color .2s ease; }
.lbd svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.lbd :focus-visible { outline: 2px solid color-mix(in srgb, var(--lbd-primary) 55%, #6ea8ff); outline-offset: 2px; border-radius: 4px; }
.lbd ::selection { color: #fff; background: var(--lbd-primary); }
.lbd .screen-reader-text { position: absolute!important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.lbd-container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.lbd-eyebrow, .lbd-section-kicker { display: inline-flex; align-items: center; gap: 9px; color: var(--lbd-accent); font-size: 12px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.lbd-eyebrow i { width: 24px; height: 2px; background: currentColor; }
.lbd-button { min-height: 50px; padding: 0 22px; border: 0; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-size: 14px; font-weight: 800; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.lbd-button:hover { transform: translateY(-2px); }
.lbd-button svg { width: 19px; height: 19px; }
.lbd-button--primary { color: #fff!important; background: var(--lbd-primary); box-shadow: 0 10px 24px color-mix(in srgb, var(--lbd-primary) 25%, transparent); }
.lbd-button--accent { color: #142037!important; background: var(--lbd-accent); box-shadow: 0 10px 24px color-mix(in srgb, var(--lbd-accent) 30%, transparent); }
.lbd-button--white { color: var(--lbd-primary)!important; background: #fff; }
.lbd-button--glass { color: #fff!important; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.12); backdrop-filter: blur(9px); }

/* Directory hero */
.lbd-directory-hero { position: relative; overflow: hidden; color: #fff; background: radial-gradient(circle at 90% 0, color-mix(in srgb, var(--lbd-primary) 65%, #477fc8), transparent 35%), linear-gradient(125deg, #0c2447 0%, var(--lbd-primary) 65%, #285b97 100%); }
.lbd-directory-hero::before { position: absolute; inset: 0; content: ""; opacity: .08; background-image: linear-gradient(30deg, transparent 45%, #fff 45%, #fff 46%, transparent 46%), linear-gradient(150deg, transparent 45%, #fff 45%, #fff 46%, transparent 46%); background-size: 60px 104px; }
.lbd-directory-hero__glow { position: absolute; top: -190px; right: -100px; width: 520px; height: 520px; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.02); }
.lbd-directory-hero__inner { position: relative; z-index: 1; padding: 72px 0 0; }
.lbd-directory-heading { max-width: 780px; text-align: center; margin: 0 auto 34px; }
.lbd-directory-heading .lbd-eyebrow { margin-bottom: 14px; }
.lbd-directory-heading h1 { max-width: 760px; margin: 0 auto 14px; color: #fff; font-size: clamp(35px, 5vw, 58px); font-weight: 900; line-height: 1.04; letter-spacing: -.045em; }
.lbd-directory-heading p { max-width: 680px; margin: 0 auto; color: rgba(255,255,255,.78); font-size: 18px; }
.lbd-search-panel { min-height: 82px; padding: 11px; border: 1px solid rgba(255,255,255,.3); border-radius: 18px; display: grid; grid-template-columns: minmax(260px, 1.7fr) minmax(210px, .85fr) auto; align-items: stretch; background: #fff; box-shadow: 0 25px 65px rgba(3,16,37,.3); }
.lbd-search-main, .lbd-search-location { position: relative; display: flex; align-items: center; }
.lbd-search-main { border-right: 1px solid var(--lbd-line); }
.lbd-search-panel label { flex: 1; }
.lbd-search-panel input, .lbd-search-panel select { width: 100%; min-height: 58px; padding: 0 18px 0 47px; border: 0; outline: 0; color: var(--lbd-ink); background: transparent; }
.lbd-search-panel input::placeholder { color: #8a95a6; }
.lbd-field-icon { position: absolute; z-index: 1; left: 15px; color: var(--lbd-primary); line-height: 0; pointer-events: none; }
.lbd-field-icon svg { width: 22px; height: 22px; }
.lbd-search-panel .lbd-button { min-width: 155px; }
.lbd-category-pills { margin-top: 36px; display: flex; align-items: stretch; justify-content: center; gap: 1px; overflow-x: auto; scrollbar-width: none; }
.lbd-category-pills::-webkit-scrollbar { display: none; }
.lbd-category-pills button { position: relative; min-width: 120px; min-height: 100px; padding: 15px 12px 13px; border: 0; border-radius: 14px 14px 0 0; display: flex; flex: 0 0 auto; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: rgba(255,255,255,.75); background: transparent; transition: .2s ease; }
.lbd-category-pills button:hover, .lbd-category-pills button.is-active { color: var(--lbd-primary); background: var(--lbd-bg); }
.lbd-category-icon { height: 30px; font-size: 24px; line-height: 30px; }
.lbd-category-pills button small { min-width: 22px; padding: 1px 6px; border-radius: 10px; color: inherit; background: rgba(255,255,255,.13); font-size: 10px; }
.lbd-category-pills button.is-active small, .lbd-category-pills button:hover small { background: #e9eef5; }

/* Results and cards */
.lbd-directory-content { padding: 42px 0 80px; background: var(--lbd-bg); }
.lbd-results-toolbar { margin-bottom: 28px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.lbd-results-toolbar > div:first-child { display: flex; flex-direction: column; }
.lbd-results-toolbar strong { font-size: 21px; }
.lbd-results-toolbar span { color: var(--lbd-muted); font-size: 13px; }
.lbd-toolbar-actions { display: flex; align-items: center; gap: 14px; }
.lbd-toolbar-actions label { display: flex; align-items: center; gap: 10px; color: var(--lbd-muted); font-size: 13px; }
.lbd-toolbar-actions select { min-height: 40px; padding: 0 34px 0 12px; border: 1px solid var(--lbd-line); border-radius: 9px; color: var(--lbd-ink); background: #fff; font-weight: 700; }
.lbd-view-toggle { padding: 4px; border: 1px solid var(--lbd-line); border-radius: 9px; display: flex; background: #fff; }
.lbd-view-toggle button { width: 31px; height: 30px; padding: 0; border: 0; border-radius: 6px; color: #8791a2; background: transparent; font-size: 20px; line-height: 1; }
.lbd-view-toggle button.is-active { color: #fff; background: var(--lbd-primary); }
.lbd-results-wrap { position: relative; min-height: 220px; }
.lbd-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.lbd-card-grid.is-list { grid-template-columns: 1fr; }
.lbd-place-card { position: relative; min-width: 0; border: 1px solid var(--lbd-line); border-radius: var(--lbd-radius); overflow: hidden; background: #fff; box-shadow: 0 8px 30px rgba(16,35,63,.055); transition: transform .25s ease, box-shadow .25s ease; }
.lbd-place-card:hover { transform: translateY(-5px); box-shadow: var(--lbd-shadow); }
.lbd-place-card.is-featured { border-color: color-mix(in srgb, var(--lbd-accent) 65%, #fff); }
.lbd-card-cover { position: relative; height: 202px; display: block; overflow: hidden; background: linear-gradient(135deg, var(--lbd-primary), #3f77b7); }
.lbd-card-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.lbd-place-card:hover .lbd-card-cover img { transform: scale(1.045); }
.lbd-cover-placeholder { position: absolute; inset: 0; overflow: hidden; background: linear-gradient(135deg, var(--lbd-primary), #2d65a7); }
.lbd-cover-placeholder i { position: absolute; width: 190px; height: 190px; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; }
.lbd-cover-placeholder i:first-child { top: -90px; right: -40px; }
.lbd-cover-placeholder i:last-child { bottom: -120px; left: -30px; }
.lbd-card-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 48%, rgba(5,19,40,.58)); }
.lbd-badge { display: inline-flex; align-items: center; min-height: 26px; padding: 3px 10px; border-radius: 20px; font-size: 10px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.lbd-badge--selection { position: absolute; top: 14px; left: 14px; color: #2e2507; background: var(--lbd-accent); }
.lbd-badge--category { position: absolute; bottom: 13px; left: 14px; color: #fff; background: #0a1b36; background: rgba(10,27,54,.86); backdrop-filter: blur(8px); }
.lbd-single-badges .lbd-badge--category { color: #fff !important; background: #0a1b36 !important; }
.lbd-badge--new { position: absolute; top: 14px; right: 14px; color: #fff; background: #0a7a4c; }
.lbd-single-badges .lbd-badge--new { color: #fff !important; background: #0a7a4c !important; }
.lbd-favorite { position: absolute; z-index: 4; top: 13px; right: 13px; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; display: grid; place-items: center; color: #243551; background: rgba(255,255,255,.94); box-shadow: 0 7px 18px rgba(8,25,50,.15); }
.lbd-favorite svg { width: 19px; height: 19px; }
.lbd-favorite.is-active { color: #fff; background: #e3435c; }
.lbd-favorite.is-active svg, [data-lbd-favorite].is-active svg { fill: currentColor; }
.lbd-card-body { position: relative; padding: 33px 20px 17px; }
.lbd-card-logo { position: absolute; top: -35px; left: 20px; width: 58px; height: 58px; padding: 4px; border: 3px solid #fff; border-radius: 14px; display: grid; place-items: center; overflow: hidden; color: #fff; background: var(--lbd-primary); box-shadow: 0 8px 20px rgba(11,34,69,.18); }
.lbd-card-logo img { width: 100%; height: 100%; border-radius: 8px; object-fit: contain; background: #fff; }
.lbd-card-logo span { font-size: 21px; font-weight: 900; }
.lbd-card-title-row { min-width: 0; display: flex; align-items: center; gap: 7px; }
.lbd-card-title-row h2 { min-width: 0; margin: 0; color: var(--lbd-ink); font-size: 20px; font-weight: 850; line-height: 1.25; letter-spacing: -.02em; }
.lbd-card-title-row h2 a { color: inherit; }
.lbd-verified { flex: 0 0 auto; width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #2c7be5; }
.lbd-verified svg { width: 11px; height: 11px; stroke-width: 3; }
.lbd-card-tagline { min-height: 42px; margin: 7px 0 13px; color: var(--lbd-muted); font-size: 13px; line-height: 1.55; }
.lbd-card-meta { min-height: 46px; padding: 11px 0; border-top: 1px solid #eef1f5; border-bottom: 1px solid #eef1f5; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; color: #536076; font-size: 12px; }
.lbd-card-meta > span { display: inline-flex; align-items: center; gap: 5px; }
.lbd-card-meta svg { width: 14px; height: 14px; color: var(--lbd-primary); }
.lbd-open-status { display: inline-flex; align-items: center; gap: 6px; color: var(--lbd-muted); }
.lbd-open-status i { width: 7px; height: 7px; border-radius: 50%; background: #9aa3b1; }
.lbd-open-status.is-open { color: var(--lbd-success); }
.lbd-open-status.is-open i { background: var(--lbd-success); box-shadow: 0 0 0 4px rgba(19,138,88,.11); }
.lbd-card-footer { padding-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.lbd-card-rating { display: flex; align-items: center; gap: 4px; }
.lbd-card-rating small { color: #9aa3b1; font-size: 11px; }
.lbd-stars { position: relative; display: inline-block; color: #d8dde5; font-size: 13px; line-height: 1; letter-spacing: 1px; white-space: nowrap; }
.lbd-stars__front { position: absolute; top: 0; left: 0; overflow: hidden; color: var(--lbd-accent); }
.lbd-rating-value { margin-left: 5px; font-size: 13px; }
.lbd-new-place { color: var(--lbd-primary); font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.lbd-card-link { display: inline-flex; align-items: center; gap: 7px; color: var(--lbd-primary)!important; font-size: 13px; font-weight: 850; }
.lbd-card-link svg { width: 17px; height: 17px; transition: transform .2s ease; }
.lbd-card-link:hover svg { transform: translateX(3px); }
.lbd-card-grid.is-list .lbd-place-card { min-height: 185px; display: grid; grid-template-columns: 280px 1fr; }
.lbd-card-grid.is-list .lbd-card-cover { height: 100%; }
.lbd-card-grid.is-list .lbd-card-body { padding: 28px 24px 17px 38px; }
.lbd-card-grid.is-list .lbd-card-logo { top: 25px; left: -29px; }
.lbd-card-grid.is-list .lbd-card-tagline { min-height: auto; }
.lbd-loading { position: absolute; z-index: 10; inset: 0; min-height: 220px; align-items: center; justify-content: center; gap: 7px; border-radius: 14px; background: rgba(245,247,250,.82); backdrop-filter: blur(3px); }
.lbd-loading:not([hidden]) { display: flex; }
.lbd-loading i { width: 10px; height: 10px; border-radius: 50%; background: var(--lbd-primary); animation: lbd-bounce .9s infinite alternate; }
.lbd-loading i:nth-child(2) { animation-delay: .2s; }.lbd-loading i:nth-child(3) { animation-delay: .4s; }
@keyframes lbd-bounce { to { opacity: .3; transform: translateY(-10px); } }
.lbd-pagination { margin-top: 34px; display: flex; align-items: center; justify-content: center; gap: 6px; }
.lbd-pagination button { min-width: 38px; height: 38px; padding: 0 10px; border: 1px solid var(--lbd-line); border-radius: 9px; color: var(--lbd-ink); background: #fff; font-size: 13px; font-weight: 800; }
.lbd-pagination button:hover, .lbd-pagination button.is-active { border-color: var(--lbd-primary); color: #fff; background: var(--lbd-primary); }
.lbd-pagination button:disabled { opacity: .35; cursor: default; }
.lbd-pagination span { color: var(--lbd-muted); }
.lbd-empty-state { grid-column: 1/-1; padding: 70px 30px; border: 1px dashed #cdd4df; border-radius: var(--lbd-radius); text-align: center; background: #fff; }
.lbd-empty-state > span, .lbd-favorites-empty > span { width: 70px; height: 70px; margin: 0 auto 17px; border-radius: 50%; display: grid; place-items: center; color: var(--lbd-primary); background: #edf2f8; }
.lbd-empty-state svg, .lbd-favorites-empty svg { width: 28px; height: 28px; }
.lbd-empty-state h2, .lbd-favorites-empty h2 { margin: 0 0 7px; font-size: 24px; }
.lbd-empty-state p, .lbd-favorites-empty p { margin: 0 auto 20px; color: var(--lbd-muted); }
.lbd-submit-cta { position: relative; margin-top: 58px; padding: 32px 36px; border-radius: 20px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; overflow: hidden; color: #fff; background: linear-gradient(120deg, #0d2b55, var(--lbd-primary) 70%, #2a65a7); box-shadow: 0 20px 50px rgba(15,45,84,.18); }
.lbd-submit-cta::after { position: absolute; right: -60px; width: 240px; height: 240px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; }
.lbd-submit-cta__icon { width: 62px; height: 62px; border-radius: 16px; display: grid; place-items: center; color: var(--lbd-primary); background: var(--lbd-accent); font-size: 32px; font-weight: 300; }
.lbd-submit-cta span { color: var(--lbd-accent); font-size: 10px; font-weight: 900; letter-spacing: .11em; }
.lbd-submit-cta h2 { margin: 3px 0; color: #fff; font-size: 22px; }
.lbd-submit-cta p { margin: 0; color: rgba(255,255,255,.72); font-size: 13px; }
.lbd-submit-cta .lbd-button { position: relative; z-index: 1; }

/* Submission page */
.lbd-submit-page, .lbd-favorites-page { min-height: 70vh; background: var(--lbd-bg); }
.lbd-submit-header, .lbd-simple-hero { padding: 55px 0 62px; color: #fff; background: linear-gradient(125deg, #0d294f, var(--lbd-primary) 72%, #2b65a8); }
.lbd-back-link { display: block; width: max-content; margin-bottom: 27px; color: rgba(255,255,255,.7)!important; font-size: 13px; font-weight: 700; }
.lbd-submit-header h1, .lbd-simple-hero h1 { max-width: 750px; margin: 9px 0; color: #fff; font-size: clamp(36px, 5vw, 55px); line-height: 1.08; letter-spacing: -.04em; }
.lbd-submit-header p, .lbd-simple-hero p { max-width: 650px; margin: 0; color: rgba(255,255,255,.73); font-size: 17px; }
.lbd-submit-layout { padding: 45px 0 80px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; align-items: start; gap: 30px; }
.lbd-form-message { margin-bottom: 22px; padding: 20px; border-radius: 14px; display: flex; align-items: center; gap: 14px; }
.lbd-form-message span, .lbd-form-message > strong { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 auto; }
.lbd-form-message svg { width: 20px; height: 20px; }
.lbd-form-message h2, .lbd-form-message p { margin: 0; }
.lbd-form-message h2 { font-size: 18px; }.lbd-form-message p { font-size: 13px; }
.lbd-form-message--success { border: 1px solid #bce9d6; color: #0c6944; background: #edf9f4; }.lbd-form-message--success span { color: #fff; background: #15935f; }
.lbd-form-message--error { border: 1px solid #f0c3c9; color: #a12639; background: #fff0f2; }.lbd-form-message--error strong { color: #fff; background: #d9455c; }
.lbd-submission-form { display: flex; flex-direction: column; gap: 22px; }
.lbd-form-section { padding: 30px; border: 1px solid var(--lbd-line); border-radius: var(--lbd-radius); display: grid; grid-template-columns: 44px 1fr; gap: 18px; background: #fff; box-shadow: 0 8px 25px rgba(16,35,63,.04); }
.lbd-form-section__number { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: #fff; background: var(--lbd-primary); font-weight: 900; }
.lbd-form-section__body > h2 { margin: 3px 0 2px; font-size: 23px; line-height: 1.2; }
.lbd-form-section__body > p { margin: 0 0 24px; color: var(--lbd-muted); font-size: 13px; }
.lbd-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.lbd-field { display: flex; flex-direction: column; gap: 6px; color: #344158; font-size: 13px; font-weight: 750; }
.lbd-field--full { grid-column: 1/-1; }
.lbd-field > span b, .lbd-consent b { color: #d6364b; }
.lbd-field input, .lbd-field select, .lbd-field textarea { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #dce1e9; border-radius: 9px; outline: 0; color: var(--lbd-ink); background: #fff; font-weight: 500; transition: border .2s, box-shadow .2s; }
.lbd-field textarea { resize: vertical; }
.lbd-field input:focus, .lbd-field select:focus, .lbd-field textarea:focus { border-color: var(--lbd-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lbd-primary) 12%, transparent); }
.lbd-field small { color: #8a94a4; font-size: 11px; font-weight: 500; }
.lbd-upload-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.lbd-upload-box { min-height: 180px; padding: 22px; border: 2px dashed #d9dfe8; border-radius: 13px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; cursor: pointer; transition: .2s; }
.lbd-upload-box:hover { border-color: var(--lbd-primary); background: #f7f9fc; }
.lbd-upload-box input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.lbd-upload-box .dashicons { width: auto; height: auto; margin-bottom: 8px; color: var(--lbd-primary); font-size: 34px; }
.lbd-upload-box strong { font-size: 14px; }.lbd-upload-box small { margin: 3px 0 12px; color: var(--lbd-muted); font-size: 11px; }.lbd-upload-box em { padding: 6px 10px; border-radius: 7px; color: var(--lbd-primary); background: #ebf0f7; font-size: 11px; font-style: normal; font-weight: 800; }
.lbd-consent { margin: 22px 0; display: flex; align-items: flex-start; gap: 9px; color: #5c687b; font-size: 12px; cursor: pointer; }
.lbd-consent input { margin-top: 3px; accent-color: var(--lbd-primary); }
.lbd-submit-button { min-width: 240px; }
.lbd-honeypot { position: absolute!important; left: -99999px!important; }
.lbd-submit-aside { position: sticky; top: 30px; display: flex; flex-direction: column; gap: 18px; }
.lbd-aside-card, .lbd-aside-note { padding: 28px; border-radius: var(--lbd-radius); background: #fff; box-shadow: var(--lbd-shadow); }
.lbd-aside-card { border-top: 4px solid var(--lbd-accent); }
.lbd-aside-icon { width: 55px; height: 55px; margin-bottom: 18px; border-radius: 15px; display: grid; place-items: center; color: #fff; background: var(--lbd-primary); font-weight: 900; }
.lbd-aside-card h3 { margin: 0 0 18px; font-size: 20px; }
.lbd-aside-card ul { padding: 0; margin: 0; display: flex; flex-direction: column; gap: 17px; list-style: none; }
.lbd-aside-card li { display: flex; gap: 11px; }.lbd-aside-card li > svg { width: 20px; height: 20px; padding: 4px; border-radius: 50%; flex: 0 0 auto; color: #fff; background: var(--lbd-success); stroke-width: 3; }
.lbd-aside-card li span { display: flex; flex-direction: column; }.lbd-aside-card li strong { font-size: 13px; }.lbd-aside-card li small { color: var(--lbd-muted); font-size: 11px; }
.lbd-aside-note { display: flex; align-items: flex-start; gap: 12px; color: #526078; box-shadow: none; border: 1px solid var(--lbd-line); }
.lbd-aside-note .dashicons { color: var(--lbd-primary); }.lbd-aside-note p { margin: 0; font-size: 12px; }

/* Single place */
.lbd-place-hero { position: relative; min-height: 480px; overflow: hidden; color: #fff; background: linear-gradient(120deg, #0c284e, var(--lbd-primary)); }
.lbd-place-hero.has-cover { background-image: var(--lbd-cover); background-position: center; background-size: cover; }
.lbd-place-hero__backdrop { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,18,40,.96) 0%, rgba(7,27,56,.82) 52%, rgba(5,21,45,.4) 100%), linear-gradient(0deg, rgba(3,15,34,.65), transparent 45%); }
.lbd-place-hero__inner { position: relative; z-index: 1; padding: 28px 0 44px; }
.lbd-breadcrumb { margin-bottom: 54px; display: flex; flex-wrap: wrap; align-items: center; gap: 9px; color: rgba(255,255,255,.65); font-size: 12px; }
.lbd-breadcrumb a:hover { color: #fff; }.lbd-breadcrumb em { font-style: normal; }
.lbd-place-hero__content { display: flex; align-items: flex-end; gap: 24px; }
.lbd-single-logo { width: 108px; height: 108px; padding: 6px; border: 4px solid rgba(255,255,255,.95); border-radius: 22px; display: grid; flex: 0 0 auto; place-items: center; overflow: hidden; color: var(--lbd-primary); background: #fff; box-shadow: 0 16px 38px rgba(0,0,0,.24); }
.lbd-single-logo img { width: 100%; height: 100%; border-radius: 13px; object-fit: contain; }.lbd-single-logo span { font-size: 38px; font-weight: 900; }
.lbd-place-identity { min-width: 0; }
.lbd-single-badges { min-height: 25px; margin-bottom: 7px; display: flex; flex-wrap: wrap; gap: 7px; }
.lbd-single-badges .lbd-badge { position: static; }
.lbd-place-identity h1 { margin: 0; display: flex; align-items: center; gap: 11px; color: #fff; font-size: clamp(37px, 5vw, 59px); font-weight: 900; line-height: 1.04; letter-spacing: -.045em; }
.lbd-verified--large { width: 27px; height: 27px; }.lbd-verified--large svg { width: 15px; height: 15px; }
.lbd-place-identity > p { margin: 8px 0 12px; color: rgba(255,255,255,.76); font-size: 18px; }
.lbd-single-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 19px; color: rgba(255,255,255,.83); font-size: 12px; }
.lbd-single-summary > span { display: inline-flex; align-items: center; gap: 7px; }.lbd-single-summary > span > svg { width: 16px; height: 16px; }
.lbd-summary-rating { padding-right: 16px; border-right: 1px solid rgba(255,255,255,.24); }.lbd-summary-rating a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.lbd-price { color: var(--lbd-accent); font-weight: 900; letter-spacing: 2px; }
.lbd-single-actions { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 10px; }
.lbd-single-nav-wrap { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid var(--lbd-line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.admin-bar .lbd-single-nav-wrap { top: 32px; }
.lbd-single-nav { display: flex; overflow-x: auto; scrollbar-width: none; }.lbd-single-nav::-webkit-scrollbar { display: none; }
.lbd-single-nav a { position: relative; padding: 20px 22px; flex: 0 0 auto; color: #647086; font-size: 13px; font-weight: 750; }
.lbd-single-nav a::after { position: absolute; right: 20px; bottom: 0; left: 20px; height: 3px; border-radius: 3px 3px 0 0; background: var(--lbd-primary); content: ""; opacity: 0; }
.lbd-single-nav a:hover, .lbd-single-nav a.is-active { color: var(--lbd-primary); }.lbd-single-nav a.is-active::after { opacity: 1; }
.lbd-single-nav small { min-width: 19px; padding: 1px 5px; border-radius: 8px; color: #fff; background: var(--lbd-primary); font-size: 9px; }
.lbd-single-layout { padding: 52px 0 90px; display: grid; grid-template-columns: minmax(0, 1fr) 350px; align-items: start; gap: 42px; }
.lbd-single-main { min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.lbd-content-section { padding: 34px; border: 1px solid var(--lbd-line); border-radius: var(--lbd-radius); background: #fff; box-shadow: 0 10px 35px rgba(16,35,63,.045); scroll-margin-top: 90px; }
.lbd-content-section > h2, .lbd-section-heading h2 { margin: 5px 0 20px; font-size: 28px; line-height: 1.2; letter-spacing: -.025em; }
.lbd-rich-content { color: #4f5d72; font-size: 15px; line-height: 1.8; }.lbd-rich-content > :first-child { margin-top: 0; }.lbd-rich-content > :last-child { margin-bottom: 0; }
.lbd-feature-list { margin-top: 27px; padding-top: 24px; border-top: 1px solid var(--lbd-line); display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; }
.lbd-feature-list > div { min-height: 55px; padding: 10px 12px; border-radius: 10px; display: flex; align-items: center; gap: 9px; background: #f5f7fa; }
.lbd-feature-list > div > span { width: 31px; height: 31px; border-radius: 8px; display: grid; place-items: center; color: var(--lbd-primary); background: #e7edf5; font-size: 14px; font-weight: 900; }.lbd-feature-list strong { font-size: 11px; }
.lbd-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }.lbd-section-heading > span { color: var(--lbd-muted); font-size: 12px; }
.lbd-gallery { height: 450px; display: grid; grid-template-columns: 1.35fr 1fr; grid-template-rows: repeat(2, 1fr); gap: 9px; }
.lbd-gallery button { padding: 0; border: 0; border-radius: 11px; overflow: hidden; background: #eef1f5; cursor: zoom-in; }.lbd-gallery__large { grid-row: 1/3; }.lbd-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }.lbd-gallery button:hover img { transform: scale(1.04); }
.lbd-offers-list { display: flex; flex-direction: column; gap: 14px; }
.lbd-offers-list article { padding: 20px; border: 1px solid #f1d89c; border-radius: 14px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 17px; background: linear-gradient(115deg, #fffbef, #fff); }
.lbd-offer-ticket { width: 58px; height: 58px; border-radius: 16px; display: grid; place-items: center; color: #332607; background: var(--lbd-accent); font-size: 25px; font-weight: 900; }
.lbd-offers-list article > div:nth-child(2) > span { color: #9a7115; font-size: 9px; font-weight: 900; letter-spacing: .1em; }.lbd-offers-list h3 { margin: 1px 0 4px; font-size: 17px; }.lbd-offers-list p { margin: 0; color: var(--lbd-muted); font-size: 12px; }.lbd-offers-list small { color: #8a7a54; font-size: 10px; }
.lbd-offers-list article > div:last-child { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }.lbd-offers-list article > div:last-child > a { color: var(--lbd-primary); font-size: 11px; font-weight: 800; }
.lbd-offer-code { min-width: 115px; padding: 8px 12px; border: 1px dashed #c59a36; border-radius: 9px; display: flex; flex-direction: column; color: #76550e; background: #fff; }.lbd-offer-code small { font-size: 8px; }.lbd-offer-code strong { font-size: 16px; letter-spacing: .08em; }.lbd-offer-code em { font-size: 8px; font-style: normal; opacity: .7; }
.lbd-global-rating { display: flex; align-items: center; gap: 9px; }.lbd-global-rating > strong { font-size: 32px; line-height: 1; }.lbd-global-rating > span { display: flex; flex-direction: column; }.lbd-global-rating small { color: var(--lbd-muted); font-size: 10px; }
.lbd-reviews-list { display: flex; flex-direction: column; }.lbd-reviews-list article { padding: 22px 0; border-top: 1px solid var(--lbd-line); display: grid; grid-template-columns: 45px 1fr; gap: 13px; }.lbd-reviews-list article:first-child { border-top: 0; }
.lbd-review-avatar { width: 43px; height: 43px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--lbd-primary); font-weight: 900; }
.lbd-review-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }.lbd-review-head > span { display: flex; flex-direction: column; }.lbd-review-head strong { font-size: 13px; }.lbd-review-head small { color: #8b95a5; font-size: 10px; }.lbd-reviews-list article p { margin: 8px 0 0; color: #536075; font-size: 13px; line-height: 1.7; }
.lbd-no-reviews { margin-bottom: 20px; padding: 22px; border-radius: 13px; display: flex; align-items: center; gap: 14px; background: #f7f9fb; }.lbd-no-reviews > span { width: 45px; height: 45px; border-radius: 50%; display: grid; place-items: center; color: #7d5c0c; background: var(--lbd-accent); }.lbd-no-reviews h3, .lbd-no-reviews p { margin: 0; }.lbd-no-reviews h3 { font-size: 14px; }.lbd-no-reviews p { color: var(--lbd-muted); font-size: 12px; }
.lbd-review-form { margin-top: 22px; padding: 25px; border-radius: 14px; background: #f5f7fa; }.lbd-review-form__head { margin-bottom: 18px; display: flex; align-items: flex-start; justify-content: space-between; }.lbd-review-form__head h3 { margin: 3px 0 0; font-size: 22px; }.lbd-review-form__head button { width: 34px; height: 34px; border: 0; border-radius: 50%; color: var(--lbd-muted); background: #e6eaf0; font-size: 24px; }.lbd-review-form fieldset { padding: 0; margin: 0 0 18px; border: 0; }.lbd-review-form legend { margin-bottom: 6px; font-size: 13px; font-weight: 750; }
.lbd-rating-input { width: max-content; display: flex; flex-direction: row-reverse; }.lbd-rating-input input { position: absolute; opacity: 0; }.lbd-rating-input label { color: #d7dce3; font-size: 31px; cursor: pointer; }.lbd-rating-input label:hover, .lbd-rating-input label:hover ~ label, .lbd-rating-input input:checked ~ label { color: var(--lbd-accent); }
.lbd-review-response { margin-bottom: 12px; font-size: 12px; font-weight: 750; }.lbd-review-response.is-error { color: #bd2c42; }.lbd-review-response.is-success { color: var(--lbd-success); }
.lbd-single-aside { position: sticky; top: 95px; display: flex; flex-direction: column; gap: 18px; }
.admin-bar .lbd-single-aside { top: 127px; }
.lbd-info-card, .lbd-map-card, .lbd-share-card { border: 1px solid var(--lbd-line); border-radius: var(--lbd-radius); overflow: hidden; background: #fff; box-shadow: 0 10px 35px rgba(16,35,63,.05); scroll-margin-top: 100px; }
.lbd-info-card { padding: 23px; }.lbd-info-card__head { margin-bottom: 17px; display: flex; align-items: flex-start; gap: 11px; }.lbd-info-card__head > span { width: 39px; height: 39px; border-radius: 10px; display: grid; place-items: center; flex: 0 0 auto; color: var(--lbd-primary); background: #edf2f8; }.lbd-info-card__head svg { width: 19px; height: 19px; }.lbd-info-card__head h2 { margin: 2px 0 1px; font-size: 16px; }.lbd-info-card__head p { margin: 0; font-size: 10px; }
.lbd-hours-list { display: flex; flex-direction: column; }.lbd-hours-list > div { padding: 8px 5px; border-top: 1px solid #eef1f5; display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 12px; }.lbd-hours-list > div.is-today { margin: 3px -7px; padding: 10px 12px; border: 0; border-radius: 8px; color: var(--lbd-primary); background: #edf2f8; }.lbd-hours-list strong { display: flex; align-items: center; gap: 5px; }.lbd-hours-list strong small { padding: 2px 5px; border-radius: 5px; color: #fff; background: var(--lbd-primary); font-size: 7px; text-transform: uppercase; }.lbd-info-empty { color: var(--lbd-muted); font-size: 12px; }
.lbd-contact-list { display: flex; flex-direction: column; }.lbd-contact-list > div, .lbd-contact-list > a { padding: 12px 0; border-top: 1px solid #eef1f5; display: flex; align-items: center; gap: 11px; }.lbd-contact-list > :first-child { border-top: 0; }.lbd-contact-list > * > span { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; flex: 0 0 auto; color: var(--lbd-primary); background: #f0f3f7; font-size: 13px; font-weight: 900; }.lbd-contact-list svg { width: 15px; height: 15px; }.lbd-contact-list p { margin: 0; display: flex; flex-direction: column; color: #657085; font-size: 11px; }.lbd-contact-list p strong { color: var(--lbd-ink); font-size: 11px; }.lbd-booking { width: 100%; margin-top: 15px; }
.lbd-map-card iframe { width: 100%; height: 215px; border: 0; display: block; }.lbd-map-card > a { min-height: 47px; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--lbd-primary); font-size: 12px; font-weight: 850; }.lbd-map-card svg { width: 16px; height: 16px; }
.lbd-share-card { padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }.lbd-share-card > strong { font-size: 11px; }.lbd-share-card > div { display: flex; gap: 6px; }.lbd-share-card a, .lbd-share-card button { width: 31px; height: 31px; padding: 0; border: 0; border-radius: 50%; display: grid; place-items: center; color: var(--lbd-primary); background: #edf2f8; font-size: 13px; font-weight: 900; }
.lbd-mobile-actions { display: none; }
.lbd-lightbox { position: fixed; z-index: 999999; inset: 0; padding: 50px; align-items: center; justify-content: center; background: rgba(3,11,26,.93); }.lbd-lightbox:not([hidden]) { display: flex; }.lbd-lightbox img { max-width: min(1200px, 95vw); max-height: 88vh; object-fit: contain; }.lbd-lightbox button { position: absolute; top: 20px; right: 25px; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: #fff; background: rgba(255,255,255,.1); font-size: 28px; }

/* Favorites */
.lbd-simple-hero { padding: 64px 0; }.lbd-favorites-content { position: relative; min-height: 350px; padding: 48px 0 80px; }.lbd-favorites-content > .lbd-loading { position: relative; }.lbd-favorites-empty { padding: 70px 20px; text-align: center; }

@media (max-width: 1024px) {
  .lbd-card-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .lbd-submit-layout { grid-template-columns: minmax(0,1fr) 280px; }
  .lbd-single-layout { grid-template-columns: minmax(0,1fr) 310px; gap: 26px; }
  .lbd-feature-list { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 782px) {
  .admin-bar .lbd-single-nav-wrap { top: 46px; }
  .lbd-container { width: min(100% - 28px, 1180px); }
  .lbd-directory-hero__inner { padding-top: 52px; }
  .lbd-directory-heading p { font-size: 15px; }
  .lbd-search-panel { grid-template-columns: 1fr; gap: 0; }
  .lbd-search-main { border-right: 0; border-bottom: 1px solid var(--lbd-line); }
  .lbd-search-panel .lbd-button { margin-top: 7px; }
  .lbd-category-pills { justify-content: flex-start; margin-inline: -14px; padding-inline: 14px; }
  .lbd-category-pills button { min-width: 104px; min-height: 88px; }
  .lbd-results-toolbar { align-items: flex-start; }.lbd-toolbar-actions label { font-size: 0; }.lbd-toolbar-actions select { font-size: 12px; }
  .lbd-view-toggle { display: none; }
  .lbd-submit-cta { grid-template-columns: auto 1fr; padding: 26px; }.lbd-submit-cta .lbd-button { grid-column: 1/-1; }
  .lbd-submit-layout, .lbd-single-layout { grid-template-columns: 1fr; }
  .lbd-submit-aside, .lbd-single-aside { position: static; }
  .lbd-submit-aside { order: -1; }.lbd-aside-card ul { display: grid; grid-template-columns: repeat(3,1fr); }
  .lbd-place-hero { min-height: auto; }.lbd-breadcrumb { margin-bottom: 35px; }.lbd-place-hero__content { align-items: center; }.lbd-single-logo { width: 88px; height: 88px; border-radius: 18px; }.lbd-place-identity h1 { font-size: 38px; }
  .lbd-single-nav-wrap { top: 0; }.lbd-single-layout { padding-top: 30px; }.lbd-single-aside { display: grid; grid-template-columns: repeat(2,1fr); }.lbd-map-card { grid-column: 1/-1; }.lbd-share-card { grid-column: 1/-1; }
  .lbd-mobile-actions { position: fixed; z-index: 9999; right: 10px; bottom: 10px; left: 10px; min-height: 62px; padding: 7px; border: 1px solid var(--lbd-line); border-radius: 15px; display: grid; grid-template-columns: repeat(3,1fr); background: rgba(255,255,255,.96); box-shadow: 0 15px 45px rgba(8,26,53,.25); backdrop-filter: blur(12px); }.lbd-mobile-actions a, .lbd-mobile-actions button { border: 0; border-radius: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; color: var(--lbd-primary); background: transparent; font-size: 9px; font-weight: 800; }.lbd-mobile-actions a:first-child { color: #182238; background: var(--lbd-accent); }.lbd-mobile-actions svg { width: 18px; height: 18px; }
}

@media (max-width: 620px) {
  .lbd-card-grid { grid-template-columns: 1fr; }.lbd-card-grid.is-list .lbd-place-card { display: block; }.lbd-card-grid.is-list .lbd-card-cover { height: 202px; }.lbd-card-grid.is-list .lbd-card-body { padding: 33px 20px 17px; }.lbd-card-grid.is-list .lbd-card-logo { top: -35px; left: 20px; }
  .lbd-results-toolbar { flex-direction: column; gap: 12px; }.lbd-toolbar-actions, .lbd-toolbar-actions label, .lbd-toolbar-actions select { width: 100%; }
  .lbd-submit-cta { grid-template-columns: 1fr; text-align: center; }.lbd-submit-cta__icon { margin: auto; }.lbd-submit-cta .lbd-button { grid-column: auto; }
  .lbd-submit-header, .lbd-simple-hero { padding: 42px 0 50px; }.lbd-submit-header h1, .lbd-simple-hero h1 { font-size: 36px; }
  .lbd-form-section { padding: 21px; grid-template-columns: 1fr; }.lbd-form-section__number { width: 36px; height: 36px; }.lbd-form-grid, .lbd-upload-grid { grid-template-columns: 1fr; }.lbd-field--full { grid-column: auto; }.lbd-upload-box { min-height: 150px; }.lbd-submit-button { width: 100%; }
  .lbd-aside-card ul { grid-template-columns: 1fr; }
  .lbd-place-hero__inner { padding-top: 22px; }.lbd-breadcrumb { margin-bottom: 28px; }.lbd-place-hero__content { flex-direction: column; align-items: flex-start; gap: 15px; }.lbd-single-logo { width: 78px; height: 78px; }.lbd-place-identity h1 { font-size: 34px; }.lbd-place-identity > p { font-size: 15px; }.lbd-summary-rating { border-right: 0; }.lbd-single-actions { display: grid; grid-template-columns: repeat(2,1fr); }.lbd-single-actions .lbd-button { padding: 0 12px; }
  .lbd-single-nav a { padding: 16px 14px; }.lbd-content-section { padding: 23px 19px; }.lbd-content-section > h2, .lbd-section-heading h2 { font-size: 24px; }.lbd-feature-list { grid-template-columns: 1fr; }.lbd-gallery { height: 480px; grid-template-columns: 1fr 1fr; grid-template-rows: 1.4fr 1fr; }.lbd-gallery__large { grid-column: 1/-1; grid-row: auto; }.lbd-offers-list article { grid-template-columns: auto 1fr; }.lbd-offers-list article > div:last-child { grid-column: 1/-1; align-items: stretch; }.lbd-review-head { flex-direction: column; gap: 4px; }.lbd-single-aside { grid-template-columns: 1fr; }.lbd-map-card, .lbd-share-card { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .lbd *, .lbd *::before, .lbd *::after { scroll-behavior: auto!important; animation-duration: .01ms!important; transition-duration: .01ms!important; }
}

