/* LatinosBE V18 · "Señales de encuentro" design system.
   Order: fonts · tokens · base · layout · buttons · forms · feedback · header · footer · page patterns ·
   editorial · directory · contact · accounts · provider portal · utilities. Front page lives in lbe-home.css. */

/* ---------- Fonts (self-hosted, OFL; latin + latin-ext only) ---------- */
@font-face { font-family: "Manrope"; src: url("../fonts/manrope-latin.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Manrope"; src: url("../fonts/manrope-latin-ext.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Bricolage Grotesque"; src: url("../fonts/bricolage-latin.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Bricolage Grotesque"; src: url("../fonts/bricolage-latin-ext.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- Tokens ---------- */
:root {
  /* Brand */
  --c-ink: #14243a; --c-deep: #153c59; --c-teal: #176b76; --c-mist: #f6f8fa; --c-gold: #ebad17; --c-red: #b32f35; --c-white: #fff;
  /* Supporting tones (contrast in DESIGN.md) */
  --c-teal-700: #105a63; --c-teal-50: #e7f2f3; --c-teal-100: #cfe6e8;
  --c-gold-50: #fdf6e3; --c-gold-200: #f6da8e; --c-gold-ink: #7a5605;
  --c-red-50: #fbedee; --c-red-700: #8f2329;
  --c-sunken: #eef2f5; --c-line: #dce3e9; --c-line-strong: #c4cfd8; --c-border: #7d8c99;
  --c-text: var(--c-ink); --c-text-2: #44566a; --c-text-3: #5b6b7d;
  --c-on-deep: #fff; --c-on-deep-2: #c9d6e0;
  /* Aliases kept for older markup and the hero */
  --navy: var(--c-ink); --deep: var(--c-deep); --teal: var(--c-teal); --mist: var(--c-mist); --paper: var(--c-mist); --gold: var(--c-gold); --red: var(--c-red); --muted: var(--c-text-2); --line: var(--c-line);
  /* Type */
  --f-display: "Bricolage Grotesque", "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-text: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --t-hero: clamp(2.6rem, 1.55rem + 3.7vw, 4.6rem);
  --t-h1: clamp(2.1rem, 1.5rem + 2.4vw, 3.5rem);
  --t-h2: clamp(1.7rem, 1.3rem + 1.6vw, 2.6rem);
  --t-h3: clamp(1.2rem, 1.1rem + .4vw, 1.45rem);
  --t-h4: 1.0625rem;
  --t-lead: clamp(1.08rem, 1rem + .35vw, 1.25rem);
  --t-body: 1rem; --t-reading: 1.0625rem; --t-small: .875rem; --t-micro: .8125rem;
  --lh-tight: 1.04; --lh-head: 1.12; --lh-body: 1.65; --lh-reading: 1.72;
  --track-display: -.035em; --track-head: -.025em;
  /* Space */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 72px;
  --sp-section: clamp(64px, 8vw, 120px);
  --w-max: 1240px; --w-text: 68ch; --w-narrow: 760px; --gutter: clamp(20px, 4vw, 40px);
  /* Shape and depth */
  --r-s: 8px; --r-m: 12px; --r-l: 20px; --r-pill: 999px;
  --e-1: 0 1px 2px rgba(20, 36, 58, .06), 0 2px 8px rgba(20, 36, 58, .05);
  --e-2: 0 12px 32px -14px rgba(20, 36, 58, .25), 0 2px 6px rgba(20, 36, 58, .06);
  --e-3: 0 28px 64px -28px rgba(20, 36, 58, .38), 0 3px 10px rgba(20, 36, 58, .07);
  /* Motion */
  --ease-out: cubic-bezier(.16, 1, .3, 1); --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --dur-1: 120ms; --dur-2: 200ms; --dur-3: 320ms;
  /* Layers */
  --z-header: 50; --z-menu: 60; --z-skip: 100;
  /* Focus */
  --focus-ring: 3px solid var(--c-ink); --focus-offset: 3px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
/* The canvas takes the footer colour so the area under mobile browser toolbars (iOS Safari) continues the footer
   instead of showing a pale band; the body keeps painting the page colour, so nothing inside the page changes. */
html { background-color: var(--c-deep); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 112px; scrollbar-color: var(--c-teal) var(--c-sunken); }
body { margin: 0; background: var(--c-mist); color: var(--c-text); font: 400 var(--t-body)/var(--lh-body) var(--f-text); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; font-feature-settings: "kern"; }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
svg { flex: none; }
a { color: var(--c-teal); text-decoration-thickness: 1px; text-underline-offset: .2em; transition: color var(--dur-1) ease; }
a:hover { color: var(--c-teal-700); text-decoration-thickness: 2px; }
:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible { outline: var(--focus-ring); outline-offset: var(--focus-offset); border-radius: 4px; }
::selection { color: var(--c-ink); background: var(--c-gold-200); }
::placeholder { color: var(--c-text-3); opacity: 1; }
:where(input, textarea) { caret-color: var(--c-teal); }
button, input, select, textarea { font: inherit; color: inherit; }
button, summary { cursor: pointer; }
h1, h2, h3, h4 { margin: 0; color: var(--c-ink); text-wrap: balance; }
h1, h2 { font-family: var(--f-display); font-weight: 750; letter-spacing: var(--track-display); line-height: var(--lh-head); }
h3, h4 { font-weight: 750; letter-spacing: -.01em; line-height: 1.3; }
h1 { font-size: var(--t-h1); } h2 { font-size: var(--t-h2); } h3 { font-size: var(--t-h3); } h4 { font-size: var(--t-h4); }
p { margin: 0 0 1em; text-wrap: pretty; }
small { font-size: var(--t-micro); }
strong { font-weight: 750; }
time, .tabular { font-variant-numeric: tabular-nums; }
hr { border: 0; border-top: 1px solid var(--c-line); margin: var(--sp-7) 0; }
.screen-reader-text, .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: var(--z-skip); left: 16px; top: -120px; padding: 12px 18px; border-radius: var(--r-m); background: var(--c-ink); color: #fff; font-weight: 700; text-decoration: none; transition: top var(--dur-2) var(--ease-out); }
.skip-link:focus { top: 16px; color: #fff; outline-color: var(--c-gold); }
.lbe-trap { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Layout ---------- */
.site-wrap { width: min(100% - 2 * var(--gutter), var(--w-max)); margin-inline: auto; }
.site-main { display: block; min-height: 50vh; }
.section { padding-block: var(--sp-section); }
.lead { font-size: var(--t-lead); line-height: 1.6; color: var(--c-text-2); max-width: 58ch; }

/* Page header: functional (compact) by default, editorial when the page is a story. */
.page-header { padding-block: clamp(36px, 5vw, 64px) clamp(28px, 4vw, 44px); border-bottom: 1px solid var(--c-line); background: var(--c-white); }
.page-header .site-wrap { display: grid; gap: var(--sp-4); }
.page-header h1 { max-width: 22ch; }
.page-header .page-lead { font-size: var(--t-lead); color: var(--c-text-2); max-width: 60ch; margin: 0; }
.page-header--editorial { position: relative; overflow: hidden; background: var(--c-mist); border-bottom: 0; padding-block: clamp(56px, 8vw, 112px) clamp(40px, 5vw, 72px); }
.page-header--editorial h1 { font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4.4rem); line-height: var(--lh-tight); max-width: 16ch; }
.page-header--editorial::after { content: ""; position: absolute; left: var(--gutter); right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, var(--c-gold) 0 96px, var(--c-line) 96px); }
.page-meta { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-4); color: var(--c-text-3); font-size: var(--t-small); }
.page-body { padding-block: clamp(40px, 6vw, 80px) var(--sp-section); }
/* Legacy markup still emitted by plugin pages. */
.interior-hero { padding-block: clamp(36px, 5vw, 64px) clamp(28px, 4vw, 44px); background: var(--c-white); border-bottom: 1px solid var(--c-line); }
.interior-hero h1 { max-width: 22ch; } .interior-subtitle { font-size: var(--t-lead); color: var(--c-text-2); max-width: 60ch; margin: var(--sp-4) 0 0; }
.interior-content { padding-block: clamp(40px, 6vw, 80px) var(--sp-section); }
.section-kicker { display: none; }

/* ---------- Buttons and links ---------- */
.btn, .header-cta, .lbe-provider-submit, .lbe-provider-secondary, .lbe-protected-contact, .lbe-filter-actions button, .lbe-quick-search button, .lbe-native-form button[type="submit"], .lbe-account-content button[type="submit"], .uwp-account-form input[type="submit"], .lbe-contact button, .lbe-protected-contact-form button {
  --btn-bg: var(--c-teal); --btn-fg: #fff; --btn-bd: transparent; --btn-bg-hover: var(--c-teal-700);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 22px;
  border: 1.5px solid var(--btn-bd); border-radius: var(--r-m); background: var(--btn-bg); color: var(--btn-fg);
  font: 700 1rem/1.2 var(--f-text); letter-spacing: -.005em; text-decoration: none; text-align: center; white-space: normal;
  cursor: pointer; transition: background-color var(--dur-2) ease, border-color var(--dur-2) ease, color var(--dur-2) ease, box-shadow var(--dur-3) var(--ease-out), transform var(--dur-1) ease;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.btn:hover, .header-cta:hover, .lbe-provider-submit:hover, .lbe-protected-contact:hover, .lbe-filter-actions button:hover, .lbe-quick-search button:hover, .lbe-native-form button[type="submit"]:hover, .lbe-account-content button[type="submit"]:hover, .uwp-account-form input[type="submit"]:hover, .lbe-contact button:hover, .lbe-protected-contact-form button:hover { background: var(--btn-bg-hover); color: var(--btn-fg); text-decoration: none; }
.btn:active, .header-cta:active, .lbe-provider-submit:active, .lbe-native-form button:active, .lbe-filter-actions button:active { transform: translateY(1px); }
.btn svg { width: 18px; height: 18px; transition: transform var(--dur-2) var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .btn:hover svg { transform: translateX(3px); } }
.btn--secondary, .lbe-provider-secondary { --btn-bg: transparent; --btn-fg: var(--c-ink); --btn-bd: var(--c-ink); --btn-bg-hover: var(--c-white); }
.lbe-provider-secondary:hover, .btn--secondary:hover { color: var(--c-ink); }
.btn--gold, .btn-gold { --btn-bg: var(--c-gold); --btn-fg: var(--c-ink); --btn-bg-hover: #f2be3f; }
.btn--light { --btn-bg: #fff; --btn-fg: var(--c-ink); --btn-bg-hover: var(--c-gold-50); }
.btn--danger { --btn-bg: transparent; --btn-fg: var(--c-red); --btn-bd: var(--c-red); --btn-bg-hover: var(--c-red-50); }
.btn--danger:hover { color: var(--c-red-700); }
.btn-dark { --btn-bg: var(--c-teal); }
.btn--small { min-height: 40px; padding: 8px 14px; font-size: var(--t-small); }
:is(.btn, button, input[type="submit"]):disabled, :is(.btn, button)[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; }
:is(button, .btn, input[type="submit"])[aria-busy="true"] { position: relative; color: transparent !important; pointer-events: none; }
:is(button, .btn)[aria-busy="true"]::after { content: ""; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .45); border-top-color: #fff; animation: lbe-spin .7s linear infinite; }
.btn--secondary[aria-busy="true"]::after, .lbe-provider-secondary[aria-busy="true"]::after { border-color: rgba(20, 36, 58, .25); border-top-color: var(--c-ink); }
@keyframes lbe-spin { to { transform: rotate(360deg); } }
.text-arrow, .read-link, .link-arrow { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; color: var(--c-teal); text-decoration: none; }
.text-arrow:hover, .read-link:hover, .link-arrow:hover { color: var(--c-teal-700); text-decoration: underline; text-underline-offset: .25em; }
.text-arrow span[aria-hidden], .read-link span[aria-hidden], .link-arrow span[aria-hidden] { transition: transform var(--dur-2) var(--ease-out); }
.text-arrow:hover span[aria-hidden], .read-link:hover span[aria-hidden], .link-arrow:hover span[aria-hidden] { transform: translateX(4px); }

/* ---------- Forms ---------- */
:is(.site-main, .site-header) :is(input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], input[type="password"], input[type="number"], input[type="date"], input:not([type]), select, textarea) {
  display: block; width: 100%; min-width: 0; min-height: 48px; margin: 0; padding: 11px 14px;
  border: 1px solid var(--c-border); border-radius: var(--r-m); background: var(--c-white); color: var(--c-ink);
  font: 400 16px/1.45 var(--f-text); box-shadow: inset 0 1px 2px rgba(20, 36, 58, .04);
  transition: border-color var(--dur-1) ease, box-shadow var(--dur-2) ease; -webkit-appearance: none; appearance: none;
}
.site-main textarea { min-height: 132px; resize: vertical; line-height: 1.6; }
.site-main select { padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2314243a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 16px; text-overflow: ellipsis; }
.site-main :is(input, select, textarea):hover { border-color: var(--c-text-2); }
.site-main :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus-visible { outline: 0; border-color: var(--c-teal); box-shadow: 0 0 0 3px var(--c-teal-100), inset 0 1px 2px rgba(20, 36, 58, .04); }
.site-main :is(input, select, textarea)[aria-invalid="true"] { border-color: var(--c-red); box-shadow: 0 0 0 3px rgba(179, 47, 53, .14); }
.site-main :is(input, select, textarea):disabled, .site-main input[readonly] { background: var(--c-sunken); color: var(--c-text-2); cursor: not-allowed; }
.site-main input[type="file"] { display: block; width: 100%; padding: 12px; border: 1.5px dashed var(--c-border); border-radius: var(--r-m); background: var(--c-white); font-size: var(--t-small); }
.site-main input[type="file"]::file-selector-button { margin-right: 12px; padding: 8px 14px; border: 0; border-radius: var(--r-s); background: var(--c-teal-50); color: var(--c-teal-700); font-weight: 700; cursor: pointer; }
.site-main label { display: block; font-weight: 650; font-size: var(--t-small); color: var(--c-ink); line-height: 1.4; }
.site-main label > :is(input, select, textarea) { margin-top: 8px; font-weight: 400; }
.site-main fieldset { min-width: 0; margin: 0 0 var(--sp-6); padding: 0; border: 0; }
.site-main legend { display: block; width: 100%; padding: 0 0 var(--sp-3); margin-bottom: var(--sp-4); border-bottom: 1px solid var(--c-line); font: 750 var(--t-h4)/1.3 var(--f-text); color: var(--c-ink); }
.site-main input[type="checkbox"], .site-main input[type="radio"] { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--c-teal); cursor: pointer; }
.lbe-provider-check { display: flex !important; align-items: flex-start; gap: 12px; margin: 14px 0; font-weight: 500 !important; font-size: var(--t-body) !important; line-height: 1.5 !important; color: var(--c-ink); cursor: pointer; }
.lbe-provider-check > input { margin-top: 2px; }
.lbe-provider-field, .form-field, .lbe-account-field { margin-bottom: var(--sp-5); }
.lbe-provider-field > label + :is(input, select, textarea), .lbe-account-field > label + :is(input, select, textarea) { margin-top: 8px; }
.lbe-provider-field > p, .lbe-account-field > p, .field-help { margin: 8px 0 0; font-size: var(--t-small); color: var(--c-text-2); }
.field-error { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0 0; font-size: var(--t-small); font-weight: 650; color: var(--c-red-700); }
.field-error::before { content: ""; flex: none; width: 16px; height: 16px; margin-top: 2px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15h-2v-2h2v2Zm0-4h-2V7h2v6Z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15h-2v-2h2v2Zm0-4h-2V7h2v6Z'/%3E%3C/svg%3E") center/contain no-repeat; }
.lbe-form-status:empty { display: none; }
.lbe-form-status { margin: 12px 0 0; font-size: var(--t-small); color: var(--c-text-2); }
.lbe-provider-grid, .lbe-account-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4) var(--sp-5); }
.lbe-provider-grid .lbe-provider-field { margin: 0; }
.lbe-provider-language-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 0 var(--sp-4); }
.lbe-provider-actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; margin-top: var(--sp-5); }

/* ---------- Feedback: notices, badges, chips, empty states ---------- */
.notice, .lbe-provider-result, .lbe-provider-error, .lbe-account-notice, .lbe-contact-success, .lbe-contact-error, .notice-warning, .notice-success {
  --n-bg: var(--c-teal-50); --n-bd: var(--c-teal); --n-fg: var(--c-ink);
  display: block; position: relative; margin: 0 0 var(--sp-5); padding: 14px 16px 14px 46px; border: 1px solid color-mix(in srgb, var(--n-bd) 35%, transparent); border-radius: var(--r-m);
  background: var(--n-bg); color: var(--n-fg); font-size: var(--t-small); line-height: 1.55; max-width: 72ch;
}
.notice::before, .lbe-provider-result::before, .lbe-provider-error::before, .lbe-account-notice::before, .lbe-contact-success::before, .lbe-contact-error::before, .notice-warning::before, .notice-success::before {
  content: ""; position: absolute; left: 16px; top: 15px; width: 18px; height: 18px; background: var(--n-bd);
  -webkit-mask: var(--n-icon, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15h-2v-6h2v6Zm0-8h-2V7h2v2Z'/%3E%3C/svg%3E")) center/contain no-repeat;
  mask: var(--n-icon, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15h-2v-6h2v6Zm0-8h-2V7h2v2Z'/%3E%3C/svg%3E")) center/contain no-repeat;
}
.lbe-provider-result, .lbe-contact-success, .notice-success, .notice--success { --n-bg: #eaf4ef; --n-bd: #1f6b4a; --n-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-1.5 14.5-4-4 1.4-1.4 2.6 2.6 5.6-5.6 1.4 1.4-7 7Z'/%3E%3C/svg%3E"); }
.lbe-provider-error, .lbe-contact-error, .notice--error { --n-bg: var(--c-red-50); --n-bd: var(--c-red); --n-fg: var(--c-red-700); --n-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15h-2v-2h2v2Zm0-4h-2V7h2v6Z'/%3E%3C/svg%3E"); }
.notice-warning, .notice--warning { --n-bg: var(--c-gold-50); --n-bd: #b07c06; --n-fg: var(--c-ink); }
.badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 8px; border-radius: var(--r-pill); font-size: var(--t-micro); font-weight: 750; line-height: 1.3; letter-spacing: .01em; white-space: nowrap; background: var(--c-sunken); color: var(--c-text-2); }
.badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.badge--draft { background: var(--c-sunken); color: var(--c-text-2); }
.badge--pending { background: var(--c-gold-50); color: var(--c-gold-ink); }
.badge--live { background: #e6f3ec; color: #1f6b4a; }
.badge--expired { background: var(--c-sunken); color: var(--c-deep); }
.badge--paused { background: var(--c-sunken); color: var(--c-text-3); }
.badge--rejected, .badge--suspended { background: var(--c-red-50); color: var(--c-red-700); }
.badge--incomplete { background: var(--c-teal-50); color: var(--c-teal-700); }
.lbe-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: 0; padding: 0; list-style: none; }
.lbe-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 8px 6px 14px; border: 1px solid var(--c-teal-100); border-radius: var(--r-pill); background: var(--c-teal-50); color: var(--c-teal-700); font-size: var(--t-small); font-weight: 650; text-decoration: none; }
.lbe-chip:hover { background: var(--c-teal-100); color: var(--c-teal-700); text-decoration: none; }
.lbe-chip svg { width: 16px; height: 16px; }
.lbe-tag { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 10px; border-radius: var(--r-s); background: var(--c-sunken); color: var(--c-text-2); font-size: var(--t-micro); font-weight: 650; }
.lbe-empty, .empty-state, .empty-editorial, .lbe-account-empty { position: relative; padding: clamp(28px, 4vw, 44px); border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); max-width: 760px; }
.lbe-empty h3, .lbe-account-empty h2 { font-size: var(--t-h3); margin-bottom: var(--sp-3); }
.lbe-empty p, .empty-editorial p, .lbe-account-empty p { color: var(--c-text-2); max-width: 60ch; }
.lbe-empty-actions { display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-5); align-items: center; margin-top: var(--sp-4); }
.empty-state { margin-block: clamp(48px, 8vw, 120px); border-style: solid; border-color: var(--c-line); }
.empty-state h1 { font-size: var(--t-h1); margin-bottom: var(--sp-4); }
.empty-state .lbe-404-code { display: block; font: 800 clamp(4rem, 3rem + 6vw, 6rem)/.9 var(--f-display); letter-spacing: -.035em; color: var(--c-teal-700); margin-bottom: var(--sp-4); }
.empty-state-links { display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-5); margin-top: var(--sp-5); align-items: center; }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: var(--z-header); background: var(--c-white); border-bottom: 1px solid var(--c-line);  }
body.admin-bar .site-header { top: 32px; }
.header-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--sp-5); min-height: 84px; }
.brand { display: inline-flex; align-items: center; border-radius: var(--r-s); }
.brand-logo { width: auto; height: 60px; }
.desktop-nav { justify-self: center; }
.primary-menu, .mobile-links, .footer-links { list-style: none; margin: 0; padding: 0; }
.primary-menu { display: flex; align-items: center; gap: 4px; }
.primary-menu a { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; border-radius: var(--r-s); color: var(--c-ink); font-size: .9375rem; font-weight: 650; text-decoration: none; }
.primary-menu a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 6px; height: 2px; border-radius: 2px; background: var(--c-gold); transform: scaleX(0); transform-origin: left; transition: transform var(--dur-3) var(--ease-out); }
.primary-menu a:hover { color: var(--c-ink); background: var(--c-sunken); }
.primary-menu a:hover::after, .primary-menu a[aria-current="page"]::after { transform: scaleX(1); }
.primary-menu a[aria-current="page"] { font-weight: 750; }
.header-actions { display: flex; align-items: center; gap: var(--sp-2); }
.account-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border-radius: var(--r-s); color: var(--c-ink); font-size: .9375rem; font-weight: 650; text-decoration: none; }
.account-link:hover { background: var(--c-sunken); color: var(--c-ink); }
.header-cta { min-height: 44px; padding: 10px 18px; font-size: .9375rem; }
/* Disclosure menus (account and mobile) share one interaction model in navigation.js. */
.account-menu, .mobile-menu { position: relative; }
.account-menu > summary, .mobile-menu > summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--c-line); border-radius: var(--r-m); background: var(--c-white); color: var(--c-ink); font-size: .9375rem; font-weight: 700; list-style: none; transition: background-color var(--dur-1) ease, border-color var(--dur-1) ease; -webkit-tap-highlight-color: transparent; }
.account-menu > summary::-webkit-details-marker, .mobile-menu > summary::-webkit-details-marker { display: none; }
.account-menu > summary:hover, .mobile-menu > summary:hover, .account-menu[open] > summary, .mobile-menu[open] > summary { background: var(--c-sunken); border-color: var(--c-line-strong); }
.account-menu > summary .account-avatar { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--c-teal); color: #fff; font: 750 .8125rem/1 var(--f-text); }
.account-menu > summary .chevron { transition: transform var(--dur-2) var(--ease-out); }
.account-menu[open] > summary .chevron { transform: rotate(180deg); }
.account-menu nav { position: absolute; top: calc(100% + 10px); right: 0; z-index: var(--z-menu); min-width: 248px; padding: 8px; border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); box-shadow: var(--e-3); transform-origin: top right; animation: lbe-pop var(--dur-3) var(--ease-out); }
.account-menu nav .menu-identity { padding: 10px 12px 12px; margin-bottom: 4px; border-bottom: 1px solid var(--c-line); font-size: var(--t-small); color: var(--c-text-2); }
.account-menu nav .menu-identity strong { display: block; color: var(--c-ink); font-size: var(--t-body); }
.account-menu nav a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 12px; border-radius: var(--r-s); color: var(--c-ink); font-size: .9375rem; font-weight: 600; text-decoration: none; }
.account-menu nav a:hover { background: var(--c-sunken); color: var(--c-ink); }
.account-menu nav a.menu-logout { margin-top: 4px; border-top: 1px solid var(--c-line); border-radius: 0 0 var(--r-s) var(--r-s); color: var(--c-text-2); }
@keyframes lbe-pop { from { opacity: 0; transform: translateY(-6px) scale(.98); } }
.mobile-menu { display: none; }
.mobile-nav { position: absolute; inset: 100% 0 auto 0; z-index: var(--z-menu); max-height: calc(100dvh - 76px - var(--wp-admin--admin-bar--height, 0px)); overflow-y: auto; overscroll-behavior: contain; padding: var(--sp-4) var(--gutter) calc(var(--sp-6) + env(safe-area-inset-bottom)); background: var(--c-white); border-bottom: 1px solid var(--c-line); box-shadow: 0 30px 60px -30px rgba(20, 36, 58, .35); animation: lbe-sheet var(--dur-3) var(--ease-out); }
@keyframes lbe-sheet { from { opacity: 0; transform: translateY(-12px); } }
.mobile-links a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 12px 4px; border-bottom: 1px solid var(--c-line); color: var(--c-ink); font: 700 1.25rem/1.2 var(--f-display); letter-spacing: -.015em; text-decoration: none; }
.mobile-links a[aria-current="page"] { color: var(--c-teal); }
.mobile-links a[aria-current="page"]::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--c-gold); }
.mobile-actions { display: grid; gap: var(--sp-2); margin-top: var(--sp-5); }
.mobile-actions a { display: flex; align-items: center; min-height: 48px; padding: 10px 14px; border-radius: var(--r-m); background: var(--c-sunken); color: var(--c-ink); font-weight: 700; text-decoration: none; }
.mobile-actions a.is-primary { justify-content: center; background: var(--c-teal); color: #fff; }
.mobile-actions a.is-quiet { background: transparent; color: var(--c-text-2); }
@media (max-width: 1179px) {
  .desktop-nav { display: none; }
  .header-inner { grid-template-columns: 1fr auto; min-height: 76px; }
  .mobile-menu { display: block; position: static; }
}
@media (max-width: 767px) {
  .header-actions > .account-link, .header-actions > .account-menu { display: none; }
  .brand-logo { height: 52px; }
}
@media (max-width: 600px) { body.admin-bar .site-header { top: 0; } }
@media (max-width: 374px) { .header-actions > .header-cta { display: none; } .brand-logo { height: 46px; } }

/* ---------- Footer ---------- */
.site-footer { position: relative; margin-top: 0; padding-top: clamp(56px, 7vw, 96px); background: var(--c-deep); color: var(--c-on-deep); }
.site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, var(--c-gold) 0 22%, transparent 22%); }
.site-footer a { color: var(--c-on-deep); text-decoration: none; }
.site-footer a:hover { color: var(--c-gold); text-decoration: underline; }
.site-footer :focus-visible { outline-color: var(--c-gold); }
.footer-statement { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--sp-6); align-items: end; padding-bottom: clamp(40px, 5vw, 64px); border-bottom: 1px solid rgba(255, 255, 255, .14); }
.footer-statement p.footer-claim { margin: 0; font: 750 clamp(2rem, 1.3rem + 2.6vw, 3.4rem)/1.04 var(--f-display); letter-spacing: var(--track-display); color: #fff; max-width: 14ch; }
.footer-statement p.footer-claim span { color: var(--c-gold); }
.footer-statement .footer-intro { margin: 0; color: var(--c-on-deep-2); max-width: 44ch; font-size: var(--t-lead); }
.footer-grid { display: grid; grid-template-columns: 1.1fr repeat(3, minmax(0, 1fr)); gap: var(--sp-6); padding-block: clamp(40px, 5vw, 56px); }
.footer-identity .footer-logo { width: auto; height: 76px; margin-bottom: var(--sp-4); border-radius: var(--r-s); }
.footer-small { color: var(--c-on-deep-2); font-size: var(--t-small); margin: 0; }
.footer-title { display: block; margin-bottom: var(--sp-3); color: #fff; font-size: var(--t-small); font-weight: 750; letter-spacing: .01em; }
.footer-links li { margin: 0; }
.footer-links a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; color: var(--c-on-deep-2); font-size: .9375rem; }
.footer-links a:hover { color: #fff; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sp-3); padding-block: var(--sp-5) calc(var(--sp-5) + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255, 255, 255, .14); color: var(--c-on-deep-2); }
.footer-bottom small { font-size: var(--t-micro); }
.footer-bottom a { color: #fff; }

/* ---------- Editorial ---------- */
.editorial-body { max-width: var(--w-text); font-size: var(--t-reading); line-height: var(--lh-reading); color: var(--c-ink); }
.editorial-body > * + * { margin-top: 1.15em; }
.editorial-body p { margin: 0; }
.editorial-body h2 { margin-top: 2.2em; font-size: clamp(1.6rem, 1.3rem + 1.1vw, 2.2rem); }
.editorial-body h3 { margin-top: 1.8em; font-size: 1.25rem; }
.editorial-body h2 + *, .editorial-body h3 + * { margin-top: .7em; }
.editorial-body ul, .editorial-body ol { padding-left: 1.3em; }
.editorial-body li + li { margin-top: .4em; }
.editorial-body li::marker { color: var(--c-teal); }
.editorial-body blockquote { margin: 2em 0; padding: 0 0 0 var(--sp-5); border-left: 1px solid var(--c-gold); font: 650 clamp(1.35rem, 1.1rem + 1vw, 1.85rem)/1.3 var(--f-display); letter-spacing: -.02em; color: var(--c-deep); }
.editorial-body blockquote p { margin: 0; }
.editorial-body a { font-weight: 600; }
.editorial-body img { border-radius: var(--r-l); }
.editorial-body figure { margin: 2em 0; }
.editorial-body figcaption { margin-top: 10px; font-size: var(--t-small); color: var(--c-text-3); }
.editorial-body .lbe-intro { font-size: var(--t-lead); line-height: 1.6; color: var(--c-ink); font-weight: 500; }
.editorial-body details { border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.editorial-body details > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 16px 0; font-weight: 750; font-size: 1.0625rem; list-style: none; color: var(--c-ink); }
.editorial-body details > summary::-webkit-details-marker { display: none; }
.editorial-body details > summary::after { content: ""; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--c-teal-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23105a63' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/16px no-repeat; transition: transform var(--dur-3) var(--ease-out); }
.editorial-body details[open] > summary::after { transform: rotate(45deg); }
.editorial-body details > :not(summary) { padding-bottom: var(--sp-5); }
.editorial-body .lbe-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--sp-6); margin-block: 1.4em; }
.editorial-body .lbe-values > div { padding: var(--sp-4) 0; border-top: 2px solid var(--c-ink); }
.editorial-body .lbe-values h3 { margin: 0 0 6px; font: 750 1.375rem/1.2 var(--f-display); letter-spacing: -.02em; }
.editorial-body .lbe-values p { margin: 0; color: var(--c-text-2); font-size: var(--t-body); line-height: 1.55; }

/* About page: reading column with a sticky table of contents. */
.about-layout { display: grid; grid-template-columns: minmax(200px, 260px) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.about-contents { position: sticky; top: 112px; padding: var(--sp-5) 0; border-top: 2px solid var(--c-ink); font-size: var(--t-small); }
.about-contents strong { display: block; margin-bottom: var(--sp-3); font-size: var(--t-micro); letter-spacing: .04em; text-transform: uppercase; color: var(--c-text-3); }
.about-contents ul { list-style: none; margin: 0; padding: 0; counter-reset: toc; }
.about-contents li { margin: 0; }
.about-contents a { display: flex; gap: 10px; align-items: baseline; min-height: 40px; padding: 8px 0; color: var(--c-text-2); font-weight: 600; text-decoration: none; line-height: 1.35; border-bottom: 1px solid var(--c-line); }
.about-contents a:hover, .about-contents a[aria-current="true"] { color: var(--c-teal-700); }
.about-contents a[aria-current="true"]::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--c-gold); transform: translateY(-2px); }
.about-quote { margin: 0; padding: clamp(40px, 6vw, 72px) 0; background: var(--c-deep); color: #fff; }
.about-quote blockquote { margin: 0; font: 750 clamp(1.8rem, 1.2rem + 2.4vw, 3rem)/1.12 var(--f-display); letter-spacing: var(--track-display); max-width: 22ch; }
.about-quote blockquote span { color: var(--c-gold); }

/* Article */
.article-heading { max-width: 860px; }
.article-heading h1 { max-width: 24ch; }
.article-byline { margin: 0; color: var(--c-text-3); font-size: var(--t-small); }
.article-layout { display: grid; gap: var(--sp-6); padding-block: clamp(32px, 5vw, 64px) var(--sp-section); }
.article-visual { margin: 0; }
.article-visual img { width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--r-l); }
.article-copy { margin-inline: auto; width: 100%; }
.article-share { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3) var(--sp-4); max-width: var(--w-text); margin-inline: auto; width: 100%; padding-top: var(--sp-5); border-top: 1px solid var(--c-line); font-size: var(--t-small); }
.article-share button { min-height: 40px; padding: 8px 14px; border: 1px solid var(--c-line-strong); border-radius: var(--r-m); background: var(--c-white); font-weight: 650; }
.share-status { color: var(--c-text-2); }
.related-posts { padding-top: var(--sp-7); border-top: 1px solid var(--c-line); }
.related-posts h2 { margin-bottom: var(--sp-5); font-size: var(--t-h3); }
.article-back a { font-weight: 700; }

/* News: a lead story plus a quiet list, not a grid of identical cards. */
.news-feed { display: grid; gap: var(--sp-6); }
.editorial-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: var(--sp-6) var(--sp-5); }
.news-card { position: relative; display: grid; gap: var(--sp-3); align-content: start; padding-top: var(--sp-4); border-top: 2px solid var(--c-ink); }
.news-card .news-thumb { display: block; overflow: hidden; border-radius: var(--r-m); aspect-ratio: 16 / 10; background: var(--c-sunken); }
.news-card .news-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease-out); }
.news-card:hover .news-thumb img { transform: scale(1.03); }
.news-content { display: grid; gap: var(--sp-2); }
.news-meta { color: var(--c-text-3); font-size: var(--t-micro); font-weight: 650; }
.news-card h3 { font: 750 clamp(1.25rem, 1.1rem + .5vw, 1.5rem)/1.2 var(--f-display); letter-spacing: -.02em; }
.news-card h3 a { color: var(--c-ink); text-decoration: none; }
.news-card h3 a::after { content: ""; position: absolute; inset: 0; }
.news-card h3 a:hover { text-decoration: underline; text-decoration-color: var(--c-gold); text-decoration-thickness: 2px; }
.news-card p { margin: 0; color: var(--c-text-2); }
.news-card .read-link { position: relative; z-index: 1; min-height: 40px; }
.news-card--lead { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--sp-6); align-items: center; padding-top: 0; border-top: 0; }
.news-card--lead .news-thumb { aspect-ratio: 4 / 3; border-radius: var(--r-l); }
.news-card--lead h3 { font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.5rem); }
.pagination, .nav-links { display: flex; flex-wrap: wrap; gap: var(--sp-2); justify-content: center; margin-top: var(--sp-7); }
.page-numbers { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--c-line); border-radius: var(--r-m); background: var(--c-white); color: var(--c-ink); font-weight: 700; text-decoration: none; font-variant-numeric: tabular-nums; }
.page-numbers.current { background: var(--c-ink); border-color: var(--c-ink); color: #fff; }
.page-numbers:hover { border-color: var(--c-ink); color: var(--c-ink); }
.search-form { display: flex; gap: var(--sp-2); max-width: 560px; }
.search-form label { flex: 1; }
.search-form input[type="submit"] { min-height: 48px; padding: 0 20px; border: 0; border-radius: var(--r-m); background: var(--c-teal); color: #fff; font-weight: 700; cursor: pointer; }

/* ---------- Directory ---------- */
.lbe-directory { display: grid; gap: var(--sp-6); }
.lbe-directory-filters { display: grid; gap: var(--sp-4); padding: clamp(18px, 2.5vw, 28px); border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); box-shadow: var(--e-1); }
.lbe-filter-main { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto; gap: var(--sp-4); align-items: end; }
.lbe-filter-main > button { min-width: 132px; }
.lbe-more-filters > summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 2px; color: var(--c-teal); font-weight: 700; font-size: var(--t-small); list-style: none; }
.lbe-more-filters > summary::-webkit-details-marker { display: none; }
.lbe-more-filters > summary svg { transition: transform var(--dur-2) var(--ease-out); }
.lbe-more-filters[open] > summary svg { transform: rotate(180deg); }
.lbe-more-filters .lbe-filter-extra { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); padding-top: var(--sp-3); }
.lbe-filter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3) var(--sp-5); }
.lbe-filter-actions a { font-weight: 650; font-size: var(--t-small); }
.lbe-results-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3); }
.lbe-results-count { margin: 0; font-weight: 750; font-size: var(--t-body); }
.lbe-results-count span { color: var(--c-text-2); font-weight: 500; }
.lbe-directory-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: var(--sp-5); }
.lbe-directory-card { position: relative; display: flex; flex-direction: column; gap: var(--sp-3); min-width: 0; padding: var(--sp-5); border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); box-shadow: var(--e-1); transition: box-shadow var(--dur-3) var(--ease-out), border-color var(--dur-2) ease, transform var(--dur-3) var(--ease-out); overflow-wrap: anywhere; }
@media (hover: hover) and (pointer: fine) { .lbe-directory-card:hover { border-color: var(--c-line-strong); box-shadow: var(--e-2); transform: translateY(-2px); } }
.lbe-card-head { display: flex; gap: var(--sp-4); align-items: flex-start; }
.lbe-card-head .lbe-business-logo { flex: none; width: 56px; height: 56px; margin: 0; border-radius: var(--r-m); object-fit: cover; border: 1px solid var(--c-line); }
.lbe-card-monogram { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: var(--r-m); background: var(--c-teal-50); color: var(--c-teal-700); font: 750 1.375rem/1 var(--f-display); }
.lbe-directory-card h3 { font: 750 1.3rem/1.2 var(--f-display); letter-spacing: -.015em; margin: 0; }
.lbe-card-service { margin: 4px 0 0; color: var(--c-text-2); font-size: var(--t-small); font-weight: 650; }
.lbe-card-more-services { white-space: nowrap; color: var(--c-teal-700, var(--c-text-2)); }
.lbe-card-desc { margin: 0; color: var(--c-text-2); overflow-wrap: anywhere; }
.lbe-card-meta { display: grid; gap: 6px; margin: 0; padding: var(--sp-3) 0 0; border-top: 1px solid var(--c-line); font-size: var(--t-small); }
.lbe-card-meta div { display: grid; grid-template-columns: 8.4em minmax(0, 1fr); gap: var(--sp-3); }
/* Labels such as «Disponibilidad» never break mid-word; each language keeps its flag and its name together. */
.lbe-card-meta dt { color: var(--c-text-3); font-weight: 650; overflow-wrap: normal; word-break: normal; }
.lbe-language-name { white-space: nowrap; }
.lbe-card-meta dd { margin: 0; color: var(--c-ink); }
.lbe-card-meta p { margin: 0; }
.lbe-availability { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.lbe-availability::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--c-text-3); }
.lbe-availability--available::before { background: #1f8a5b; }
.lbe-availability--appointment::before { background: var(--c-gold); }
.lbe-card-actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: auto; padding-top: var(--sp-2); }
.lbe-card-actions a:not(.btn):not(.lbe-protected-contact) { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 14px; border: 1px solid var(--c-line-strong); border-radius: var(--r-m); color: var(--c-ink); font-weight: 700; font-size: var(--t-small); text-decoration: none; }
.lbe-card-actions a:not(.btn):not(.lbe-protected-contact):hover { border-color: var(--c-ink); background: var(--c-sunken); }
.lbe-directory-card .lbe-protected-contact { min-height: 44px; padding: 10px 16px; font-size: var(--t-small); }
.lbe-directory-card .lbe-business-logo:not(.lbe-card-head *) { width: 72px; height: 72px; object-fit: cover; border-radius: var(--r-m); }
.lbe-pagination { display: flex; justify-content: space-between; gap: var(--sp-3); }
.lbe-pagination a { font-weight: 700; }
/* Quick search (front page and anywhere it is embedded). */
.lbe-quick-search { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: var(--sp-3); align-items: end; padding: var(--sp-4); border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); box-shadow: var(--e-2); }
.lbe-quick-search button { min-height: 48px; min-width: 120px; }
.lbe-quick-search button svg { width: 20px; height: 20px; }

/* ---------- Contact ---------- */
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 360px); gap: clamp(32px, 5vw, 72px); align-items: start; }
.lbe-contact form, .lbe-protected-contact-form form { display: grid; gap: var(--sp-4); max-width: 640px; }
.lbe-contact form > p, .lbe-protected-contact-form form > p { margin: 0; }
.lbe-contact-notice { color: var(--c-text-2); font-size: var(--t-small); }
.lbe-protected-contact-form { max-width: 720px; }
.lbe-protected-contact-form h2 { margin-bottom: var(--sp-3); }
.contact-aside { display: grid; gap: var(--sp-5); padding: var(--sp-5); border-left: 1px solid var(--c-gold); }
.contact-aside h2 { font-size: var(--t-h3); font-family: var(--f-text); letter-spacing: -.01em; }
.contact-aside ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-3); }
.contact-aside li { color: var(--c-text-2); font-size: var(--t-small); }
.contact-aside li strong { display: block; color: var(--c-ink); font-size: var(--t-body); }
.contact-policies { margin-top: var(--sp-7); padding-top: var(--sp-5); border-top: 1px solid var(--c-line); }
.contact-policies ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-5); }

/* ---------- Accounts ---------- */
.lbe-auth-shell { width: 100%; max-width: 520px; margin: 0 auto; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); box-shadow: var(--e-2); }
.lbe-auth-shell > h2 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); margin-bottom: var(--sp-3); }
.lbe-auth-shell > p { color: var(--c-text-2); }
.editorial-body:has(.lbe-auth-shell), .editorial-body:has(.lbe-account-layout), .editorial-body:has(.lbe-provider-portal), .editorial-body:has(.lbe-directory) { max-width: none; font-size: var(--t-body); line-height: var(--lh-body); }
.editorial-body:has(.lbe-auth-shell) > * + *, .editorial-body:has(.lbe-account-layout) > * + *, .editorial-body:has(.lbe-provider-portal) > * + *, .editorial-body:has(.lbe-directory) > * + * { margin-top: var(--sp-5); }
.lbe-native-form, .uwp-account-form { margin: var(--sp-5) 0 0; display: grid; gap: var(--sp-4); }
.lbe-native-form > p { margin: 0; }
.lbe-native-form [data-lbe-password] { position: relative; }
.lbe-native-form [data-lbe-toggle] { display: inline-flex; align-items: center; min-height: 40px; margin-top: 6px; padding: 6px 2px; border: 0; background: none; color: var(--c-teal); font-size: var(--t-small); font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.lbe-auth-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sp-3); margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--c-line); font-size: var(--t-small); }
.lbe-auth-links a, .lbe-auth-shell > a, .lbe-auth-shell > p > a:only-child { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
.lbe-auth-intro { display: grid; gap: var(--sp-2); margin-bottom: var(--sp-5); }
.lbe-account-layout { display: grid; grid-template-columns: 248px minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.lbe-account-sidebar { position: sticky; top: 108px; padding: var(--sp-2); border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); }
.lbe-account-sidebar ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.lbe-account-sidebar li { margin: 0; }
.lbe-account-sidebar a { position: relative; display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 12px; border-radius: var(--r-m); color: var(--c-ink); font-size: .9375rem; font-weight: 650; text-decoration: none; }
.lbe-account-sidebar a:hover { background: var(--c-sunken); color: var(--c-ink); }
.lbe-account-sidebar a[aria-current="page"] { background: var(--c-teal-50); color: var(--c-teal-700); font-weight: 750; }
.lbe-account-sidebar li.is-separated { margin-top: var(--sp-2); padding-top: var(--sp-2); border-top: 1px solid var(--c-line); }
.lbe-account-content { min-width: 0; max-width: 800px; }
.lbe-account-content > h2 { font-size: clamp(1.7rem, 1.35rem + 1.2vw, 2.3rem); margin-bottom: var(--sp-3); }
.lbe-account-content > h2 + p { color: var(--c-text-2); font-size: var(--t-lead); max-width: 56ch; }
.lbe-account-content h3 { margin: var(--sp-7) 0 var(--sp-3); padding-top: var(--sp-5); border-top: 1px solid var(--c-line); font-size: var(--t-h3); }
.lbe-account-content > h3:first-of-type { border-top: 0; padding-top: 0; }
.lbe-account-content p { max-width: 64ch; }
.lbe-account-shortcuts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--sp-5); margin: var(--sp-5) 0 0; border-top: 1px solid var(--c-line); }
.lbe-account-shortcuts > a { position: relative; display: grid; gap: 4px; padding: var(--sp-4) 40px var(--sp-4) 0; border-bottom: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; }
.lbe-account-shortcuts > a::after { content: ""; position: absolute; right: 4px; top: 50%; width: 20px; height: 20px; margin-top: -10px; background: var(--c-teal); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat; transition: transform var(--dur-2) var(--ease-out); }
.lbe-account-shortcuts > a:hover::after { transform: translateX(4px); }
.lbe-account-shortcuts strong { color: var(--c-ink); font-size: var(--t-body); }
.lbe-account-shortcuts span { color: var(--c-text-2); font-size: var(--t-small); }
.lbe-account-shortcuts > a:hover strong { color: var(--c-teal-700); }
.lbe-account-content dl { display: grid; grid-template-columns: minmax(110px, 160px) minmax(0, 1fr); gap: 10px var(--sp-5); margin: var(--sp-4) 0; padding: var(--sp-4); border: 1px solid var(--c-line); border-radius: var(--r-m); background: var(--c-white); }
.lbe-account-content dt { color: var(--c-text-3); font-weight: 650; font-size: var(--t-small); }
.lbe-account-content dd { margin: 0; overflow-wrap: anywhere; }
.lbe-account-content ul { padding-left: 1.2em; }
.lbe-private-photo { width: 112px; height: 112px; margin-bottom: var(--sp-4); border-radius: 50%; object-fit: cover; border: 3px solid var(--c-white); box-shadow: var(--e-1); }
.lbe-native-account .uwp-account-form .form-group { margin-bottom: var(--sp-4); }
.lbe-native-account input[name="email"] { background: var(--c-sunken); }
.lbe-account-content fieldset { margin: var(--sp-4) 0; }
.lbe-account-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0; margin: var(--sp-5) 0; border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); overflow: hidden; }
.lbe-account-summary > div { padding: var(--sp-4) var(--sp-5); border-right: 1px solid var(--c-line); }
.lbe-account-summary > div:last-child { border-right: 0; }
.lbe-account-summary dt, .lbe-account-summary .label { display: block; color: var(--c-text-3); font-size: var(--t-micro); font-weight: 700; letter-spacing: .02em; }
.lbe-account-summary strong { display: block; margin-top: 4px; font-size: var(--t-body); }

/* ---------- Provider portal ---------- */
.lbe-provider-portal { display: grid; gap: var(--sp-5); max-width: 880px; }
.lbe-provider-portal > h2 { font-size: clamp(1.7rem, 1.35rem + 1.2vw, 2.3rem); }
.lbe-provider-kicker { display: none; }
.lbe-provider-lead { font-size: var(--t-lead); color: var(--c-text-2); max-width: 60ch; margin: 0; }
.lbe-provider-form { display: grid; gap: var(--sp-6); margin-top: var(--sp-3); }
.lbe-provider-form > fieldset, .lbe-provider-portal form > fieldset { padding: clamp(20px, 3vw, 32px); border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); margin: 0; }
.lbe-provider-form > fieldset > legend, .lbe-provider-portal form > fieldset > legend { float: left; width: 100%; margin-bottom: var(--sp-5); }
.lbe-provider-form > fieldset > legend + * { clear: both; }
.lbe-provider-privacy { color: var(--c-text-2); font-size: var(--t-small); margin: 0; }
.lbe-vigencia-notice { position: relative; display: block; padding: var(--sp-5) var(--sp-5) var(--sp-5) 64px; border: 1px solid #f0d28a; border-radius: var(--r-l); background: var(--c-gold-50); color: var(--c-ink); line-height: 1.6; max-width: 72ch; }
.lbe-vigencia-notice::before { content: ""; position: absolute; left: 22px; top: 24px; width: 24px; height: 24px; background: #b07c06; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='3'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M9 16l2 2 4-4'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='3'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M9 16l2 2 4-4'/%3E%3C/svg%3E") center/contain no-repeat; }
.lbe-vigencia-notice > strong:first-child { display: block; margin-bottom: 6px; font: 750 1.2rem/1.3 var(--f-display); letter-spacing: -.01em; }
.lbe-vigencia-notice p { margin: 0 0 .6em; }
.lbe-vigencia-notice p:last-child { margin: 0; }
.lbe-vigencia-notice .lbe-vigencia-fine { color: var(--c-gold-ink); font-size: var(--t-small); font-weight: 650; }
.lbe-provider-listing { display: grid; gap: var(--sp-3); padding: clamp(18px, 2.5vw, 28px); border: 1px solid var(--c-line); border-radius: var(--r-l); background: var(--c-white); overflow-wrap: anywhere; }
.lbe-provider-listing-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-2) var(--sp-4); }
.lbe-provider-listing h3 { font: 750 1.35rem/1.2 var(--f-display); letter-spacing: -.015em; margin: 0; }
.lbe-provider-listing p { margin: 0; }
.lbe-provider-dates { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-6); margin: 0; padding: var(--sp-3) 0; border-block: 1px solid var(--c-line); font-size: var(--t-small); }
.lbe-provider-dates div { display: grid; gap: 2px; }
.lbe-provider-dates dt { color: var(--c-text-3); font-weight: 650; }
.lbe-provider-dates dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.lbe-provider-next { color: var(--c-text-2); font-size: var(--t-small); }
.lbe-provider-listing-actions { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-3); align-items: center; }
.lbe-provider-listing-actions form { margin: 0; }
.lbe-provider-listing-actions a:not(.btn):not(.lbe-provider-secondary) { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 4px; font-weight: 700; }
.lbe-provider-note { padding: var(--sp-3) var(--sp-4); border-left: 1px solid var(--c-teal); background: var(--c-teal-50); border-radius: 0 var(--r-s) var(--r-s) 0; font-size: var(--t-small); }
.lbe-provider-inbox { margin-top: var(--sp-6); padding-top: var(--sp-6); border-top: 1px solid var(--c-line); }
.lbe-provider-inbox h3 { font-size: var(--t-h3); margin-bottom: var(--sp-3); }
.lbe-provider-message { padding: var(--sp-4) var(--sp-5); margin: var(--sp-3) 0; border: 1px solid var(--c-line); border-radius: var(--r-m); background: var(--c-white); overflow-wrap: anywhere; }
.lbe-business-logo { display: block; width: 96px; height: 96px; object-fit: cover; border-radius: var(--r-m); border: 1px solid var(--c-line); margin-top: var(--sp-3); }
.lbe-protected-contact { --btn-bg: var(--c-teal); }

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
  .lbe-filter-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lbe-filter-main > label:first-child { grid-column: 1 / -1; }
  .lbe-filter-main > button { grid-column: 1 / -1; }
  .lbe-quick-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lbe-quick-search > label:first-child, .lbe-quick-search > button { grid-column: 1 / -1; }
  .about-layout { grid-template-columns: 1fr; }
  .about-contents { position: static; }
  .about-contents ul { display: flex; flex-wrap: wrap; gap: 0 var(--sp-4); }
  .about-contents a { border-bottom: 0; min-height: 40px; padding: 6px 0; }
  .contact-layout { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-identity { grid-column: 1 / -1; }
  .news-card--lead { grid-template-columns: 1fr; }
}
@media (max-width: 899px) {
  .lbe-account-layout { grid-template-columns: 1fr; gap: var(--sp-5); }
  .lbe-account-sidebar { position: static; padding: 4px; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, black 85%, transparent); mask-image: linear-gradient(90deg, black 85%, transparent); }
  .lbe-account-sidebar::-webkit-scrollbar { display: none; }
  .lbe-account-sidebar ul { display: flex; gap: 4px; width: max-content; padding-right: 32px; }
  .lbe-account-sidebar li.is-separated { margin: 0; padding: 0; border: 0; }
  .lbe-account-sidebar a { white-space: nowrap; min-height: 44px; padding: 8px 14px; }
  .lbe-account-summary > div { border-right: 0; border-bottom: 1px solid var(--c-line); }
  .lbe-account-summary > div:last-child { border-bottom: 0; }
  .footer-statement { grid-template-columns: 1fr; align-items: start; }
}
@media (max-width: 767px) {
  .lbe-provider-grid, .lbe-account-fields, .lbe-more-filters .lbe-filter-extra, .lbe-account-shortcuts { grid-template-columns: 1fr; }
  .lbe-filter-main { grid-template-columns: 1fr; }
  .lbe-quick-search { grid-template-columns: 1fr; }
  .editorial-body .lbe-values { grid-template-columns: 1fr; }
  .lbe-account-content dl, .lbe-card-meta div { grid-template-columns: 1fr; gap: 2px; }
  .lbe-account-content dd { margin-bottom: 8px; }
  .page-header--editorial::after { left: 20px; }
  .lbe-provider-actions > button, .lbe-provider-actions > a { flex: 1 1 100%; }
  .lbe-vigencia-notice { padding: var(--sp-4) var(--sp-4) var(--sp-4) 56px; }
  .lbe-vigencia-notice::before { left: 18px; top: 20px; }
}
@media (max-width: 559px) { .footer-grid { grid-template-columns: 1fr; gap: var(--sp-5); } }

/* ---------- Motion and print ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
  .site-header, .site-footer, .skip-link, .lbe-directory-filters, .article-share, .mobile-menu { display: none !important; }
  html, body { background: #fff; }
  a { color: inherit; text-decoration: underline; }
}

/* ---------- Completed V18 surfaces ---------- */
[hidden] { display: none !important; }
.site-main, .site-header, .site-footer { overflow-wrap: break-word; }
:where(button, a, summary) { touch-action: manipulation; }
:where(button, summary) { -webkit-user-select: none; user-select: none; }
:where(input, textarea, select) { scroll-margin-block: 140px 32px; }
.h3-like { font-size: var(--t-h3); line-height: 1.3; margin-bottom: var(--sp-4); }
.lbe-filter-main > button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border: 0; border-radius: var(--r-m); padding: 12px 22px; background: var(--c-teal); color: #fff; font-weight: 750; }
.lbe-filter-main > button:active { background: var(--c-deep); }
.lbe-filter-extra label { min-width: 0; }
.lbe-filter-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3); }
.lbe-filter-footer > a { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--t-small); font-weight: 700; }
.lbe-more-filters { flex: 1 1 auto; }
.lbe-more-filters[open] { flex-basis: 100%; }
.lbe-filter-extra { margin-bottom: var(--sp-3); }
.lbe-directory-help { color: var(--c-text-2); font-size: var(--t-small); margin: 0; }
.lbe-card-details { padding-top: var(--sp-3); border-top: 1px solid var(--c-line); font-size: var(--t-small); }
.lbe-card-details p { margin: 0 0 8px; }
.lbe-card-details:empty, .lbe-card-actions:empty { display: none; }
.lbe-directory-grid > .lbe-directory-card { align-content: start; }
.lbe-empty { padding-left: clamp(24px, 4vw, 44px); }
.lbe-empty .lbe-empty-symbol { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: var(--sp-5); border: 1px solid var(--c-line); border-radius: var(--r-m); color: var(--c-teal); background: var(--c-mist); }
.lbe-empty .lbe-empty-symbol svg { width: 24px; height: 24px; }
.lbe-empty h2, .lbe-empty h3 { max-width: 27ch; }
.lbe-chips { align-items: center; }
.lbe-chip { max-width: 100%; overflow-wrap: anywhere; }
.auth-layout { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); min-height: min(760px, calc(100svh - 84px)); }
.auth-aside { display: flex; align-items: center; padding: clamp(36px, 5vw, 88px) max(40px, calc((100vw - 1240px) / 2)); background: var(--c-deep); color: var(--c-on-deep); }
.auth-aside-inner { max-width: 420px; }
.auth-claim { font: 750 clamp(2.2rem, 1.6rem + 1.5vw, 3.5rem)/1.05 var(--f-display); letter-spacing: var(--track-display); }
.auth-claim span { color: var(--c-gold); }
.auth-points { list-style: none; padding: 0; margin: 40px 0 0; display: grid; gap: 22px; color: var(--c-on-deep-2); font-size: var(--t-small); }
.auth-points li { padding-top: 18px; border-top: 1px solid rgba(255,255,255,.2); }
.auth-points strong { display: block; margin-bottom: 6px; color: #fff; font-size: var(--t-body); }
.auth-signage { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 40px; margin-bottom: 0; color: #fff; font-size: var(--t-small); font-weight: 650; }
/* Station-sign style: each name with its language, as on the home signboard (Brussels is officially FR/NL). */
.auth-signage span { display: inline-flex; align-items: center; gap: 8px; }
.auth-signage b { display: inline-grid; place-items: center; min-width: 28px; height: 20px; padding: 0 5px; border: 1.5px solid var(--c-gold); border-radius: var(--r-s); color: var(--c-gold); font-size: .65rem; letter-spacing: .06em; }
.auth-main { align-self: center; width: min(100%, 660px); padding: clamp(32px, 5vw, 72px) clamp(24px, 5vw, 72px); margin-inline: auto; min-width: 0; }
.auth-main > h1 { font-size: clamp(1.7rem, 1.4rem + 1vw, 2.4rem); margin-bottom: 24px; }
.auth-content .lbe-auth-shell { max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.auth-content .lbe-auth-shell > h2 { font: 600 var(--t-lead)/1.4 var(--f-text); letter-spacing: 0; margin-bottom: var(--sp-3); }
.auth-content .lbe-auth-shell > p { font-size: var(--t-body); }
.auth-content :is(.lbe-auth-shell, .lbe-native-form) > a { color: var(--c-teal); }
.auth-content .lbe-native-form button[type="submit"] { width: 100%; }
.lbe-account-fields { align-items: end; }
.lbe-account-fields > label { grid-row: 1; }
.lbe-account-fields > select { grid-row: 2; }
.lbe-native-account :is(.uwp_form, .uwp-form) .form-group { margin-bottom: 20px; }
.lbe-native-account :is(input[type="submit"],button[type="submit"]), .lbe-account-content .uwp-change-form input[type="submit"] { min-height: 48px; padding: 12px 20px; border: 0; border-radius: var(--r-m); background: var(--c-teal); color: #fff; font-weight: 750; }
.lbe-account-layout .lbe-account-content { max-width: none; }
.lbe-account-content > :is(p, form, dl) + :is(p, form, dl) { margin-top: var(--sp-5); }
.about-signage { display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-5); color: var(--c-teal); font-weight: 650; margin: 12px 0 0; font-size: var(--t-small); }
.about-body { margin-inline: 0; width: 100%; }
.about-body details :is(h2,h3) { scroll-margin-top: 132px; }
.about-body details[open] > :not(summary) { padding: 0; }
.about-body details[open] > :last-child { padding-bottom: 24px; }
.about-body .lbe-biography { margin-top: 30px; }
@media (max-width: 899px) {
  .auth-layout { grid-template-columns: 1fr; min-height: 0; }
  .auth-aside { display: none; }
  .auth-main { padding: 36px var(--gutter) 56px; }
  .lbe-account-sidebar { overflow-x: visible; -webkit-mask-image: none; mask-image: none; }
  .lbe-account-sidebar ul { flex-wrap: wrap; width: auto; padding-right: 0; }
  .lbe-account-sidebar a { padding: 10px; font-size: .875rem; white-space: normal; }
}
@media (max-width: 767px) {
  .lbe-account-fields > label, .lbe-account-fields > select { grid-row: auto; }
  .lbe-account-fields > label[for="lbe-city"] { order: 2; }
  .lbe-account-fields > select[name="lbe_city"] { order: 3; }
  body.admin-bar .site-header { top: 46px; }
  .about-contents ul { display: grid; gap: 0; }
  .about-contents a { min-height: 44px; padding-block: 10px; border-bottom: 1px solid var(--c-line); }
  .auth-main > h1 { margin-bottom: 20px; }
}
@media (max-width: 600px) {
  body.admin-bar .site-header { top: 0; }
  .lbe-native-form button[type="submit"], .lbe-provider-submit { width: 100%; }
  .site-footer { padding-bottom: env(safe-area-inset-bottom, 0px); }
}
/* Home city links: six cities sit as two rows of three on wide screens (the phone layout stays at two columns). */
@media (min-width: 900px) { .city-section .city-links { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .site-main *, .site-header *, .site-footer * { animation: none !important; transition: none !important; } }
