@import url("/recovery/geologica.css");

:root { --pink:#f31260; --pink-dark:#d90f56; --ink:#020817; --muted:#64748b; --line:#e2e8f0; --soft:#f1f5f9; --white:#fff; --lbp-shell-max:100%; --lbp-shell-gutter:16px; --lbp-header-max:100%; --lbp-footer-max:1320px; }
@media (min-width:480px) { :root { --lbp-shell-max:480px; --lbp-header-max:480px; } }
@media (min-width:640px) { :root { --lbp-shell-max:640px; --lbp-header-max:640px; } }
@media (min-width:768px) { :root { --lbp-shell-max:768px; --lbp-header-max:768px; } }
@media (min-width:1024px) { :root { --lbp-shell-max:1024px; --lbp-header-max:1024px; } }
@media (min-width:1280px) { :root { --lbp-shell-max:1280px; --lbp-header-max:1280px; } }
@media (min-width:1536px) { :root { --lbp-shell-max:1536px; --lbp-header-max:1536px; } }
* { box-sizing:border-box; }
html { min-height:100%; color-scheme:light; background:#0a0a0a; }
html.lbp-page-booting,
html.lbp-page-leaving { background:#fff; }
body { margin:0; min-width:320px; min-height:0; display:block; overflow-x:hidden; color:var(--ink); background:#fff; font-family:Geologica,"Geologica Fallback",Arial,sans-serif; font-size:16px; line-height:24px; font-weight:400; letter-spacing:0; -webkit-font-smoothing:antialiased; }
body.filters-open { overflow:hidden; overscroll-behavior:none; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; letter-spacing:0; }
a[href],button,select,summary,[role="button"],input[type="checkbox"],input[type="radio"],input[type="file"],label[for],label:has(input[type="checkbox"]),label:has(input[type="radio"]),label:has(input[type="file"]) { cursor:pointer; }
button:disabled,select:disabled,input:disabled,[aria-disabled="true"] { cursor:not-allowed; }
svg { width:22px; height:22px; flex:none; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; shape-rendering:geometricPrecision; }
.directory-header { position:sticky; top:0; z-index:50; width:100%; height:81px !important; min-height:81px !important; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:40px; padding:0 var(--lbp-shell-gutter); border-bottom:1px solid #e2e8f0; background:rgba(255,255,255,.6); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.directory-logo img { display:block; width:80px; height:56px; object-fit:contain; }
.directory-nav { display:flex; align-items:center; gap:4px; }
.directory-nav a { min-height:44px; display:inline-flex; align-items:center; padding:10px 20px; border-radius:999px; color:var(--muted); font-family:Geologica,"Geologica Fallback",Arial,sans-serif; font-size:16px; line-height:24px; font-weight:500 !important; letter-spacing:0; white-space:nowrap; transition:color .18s ease,background-color .18s ease; }
.directory-nav a:hover { color:var(--muted); background:#f8fafc; }
.directory-nav a.active,.directory-nav a.active:hover { color:var(--pink); background:rgba(243,18,96,.1); }
.directory-account { position:relative; display:flex; align-items:center; justify-self:end; gap:8px; }
.icon-link { position:relative; width:40px; height:40px; display:grid; place-items:center; border-radius:6px; transition:background-color .18s ease; }
.icon-link svg { width:20px; height:20px; }
.icon-link:hover { background:#f8fafc; }
.icon-link b { position:absolute; top:-3px; right:-2px; min-width:20px; height:20px; display:grid; place-items:center; padding:0 5px; border-radius:999px; color:#fff; background:#ef4444; font-size:11px; line-height:1; }
.account-avatar { position:relative; width:40px; height:40px; display:grid; place-items:center; overflow:hidden; border-radius:50%; color:var(--muted); background:#f1f5f9; font-size:14px; line-height:1; font-weight:700; }
.account-avatar span { position:absolute; inset:0; display:grid; place-items:center; }
.account-avatar img { position:relative; z-index:1; width:100%; height:100%; object-fit:cover; }
.sign-link,.signup-link { min-height:48px; display:inline-flex; align-items:center; padding:0 20px; border:1px solid var(--line); border-radius:6px; font-weight:650; }
.signup-link { border-color:var(--pink); color:#fff; background:var(--pink); }
.signup-link:hover { background:var(--pink-dark); }
.directory-menu { display:none; width:44px; height:44px; padding:0; border:0; border-radius:8px; background:transparent; -webkit-tap-highlight-color:transparent; }
.directory-menu:hover { background:#f7f8fb; }
.directory-menu-backdrop,.directory-menu-head { display:none; }
.directory-menu-panel { position:absolute; top:calc(100% + 6px); right:0; z-index:45; width:clamp(176px,50vw,192px); min-width:0; display:grid; padding:6px 0; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:0 8px 20px rgba(15,23,42,.15); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-6px); transition:opacity .15s ease,transform .15s ease,visibility .15s ease; }
.directory-menu-panel.open { opacity:1; visibility:visible; transform:translateY(0); }
.directory-menu-panel[data-open="true"] { pointer-events:auto; }
.directory-menu-panel a,.directory-menu-panel button { width:100%; min-height:32px; display:flex; align-items:center; gap:9px; padding:0 12px; border:0; border-radius:0; color:var(--ink); background:transparent; text-align:left; font-size:14px; line-height:20px; font-weight:500; }
.directory-menu-panel a:hover,.directory-menu-panel button:hover { background:#fafbfd; }
.directory-menu-panel hr { width:100%; height:1px; margin:4px 0; border:0; background:var(--line); }
.directory-menu-panel .directory-menu-action svg { width:18px; height:18px; flex:0 0 18px; }
.directory-menu-badge { min-width:20px; height:20px; display:grid; place-items:center; margin-left:auto; padding:0 5px; border-radius:999px; color:#fff; background:#ef4444; font-size:11px; line-height:20px; font-weight:700; }
.directory-main { width:100%; max-width:var(--lbp-shell-max); flex:0 0 auto; margin:0 auto; padding:32px var(--lbp-shell-gutter) 40px; }
.directory-heading { margin-bottom:24px; }
.directory-heading h1 { margin:0 0 4px; font-size:30px; line-height:36px; font-weight:700; }
.directory-heading p { margin:0; color:var(--muted); font-size:16px; line-height:24px; }
.directory-toolbar { margin-bottom:24px; }
.directory-search { height:40px; display:flex; align-items:center; gap:10px; padding:0 12px; border:1px solid var(--line); border-radius:6px; background:#fff; transition:border-color .18s ease,box-shadow .18s ease; }
.directory-search:focus-within { border-color:var(--pink); box-shadow:0 0 0 2px rgba(243,18,96,.1); }
.directory-search svg { width:19px; color:var(--muted); }
.directory-search input { width:100%; min-width:0; border:0; outline:0; color:var(--ink); background:transparent; font-size:14px; }
.directory-search input::placeholder { color:#8b9ab0; }
.directory-columns { display:grid; grid-template-columns:minmax(0,1fr) 288px; gap:32px; align-items:start; }
.directory-results { min-width:0; }
.directory-list-shell { position:relative; min-height:180px; }
.directory-grid { display:grid; gap:16px; }
.directory-card { position:relative; min-height:179px; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.05); cursor:pointer; -webkit-tap-highlight-color:transparent; transition:none; }
.directory-card:hover,.directory-card:focus-within { border-color:var(--line); box-shadow:0 1px 2px rgba(0,0,0,.05); }
.directory-card:focus-visible { outline:2px solid var(--pink); outline-offset:2px; }
.directory-card-link { min-height:177px; display:grid; grid-template-columns:128px minmax(0,1fr); gap:24px; padding:24px 162px 24px 24px; -webkit-tap-highlight-color:transparent; }
.directory-card-media { position:relative; width:128px; height:128px; display:grid; place-items:center; overflow:hidden; border-radius:8px; color:var(--pink); background:#f1f5f9; font-size:36px; font-weight:700; }
.directory-card-media > span { position:absolute; inset:0; display:grid; place-items:center; }
.directory-card-media img { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:contain; }
.directory-card-media-clinics { box-sizing:border-box; padding:4px; }
.directory-card-media-clinics img { border-radius:4px; background:#fff; }
.directory-card-content { min-width:0; align-self:start; }
.directory-card h2 { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:18px; line-height:28px; font-weight:700 !important; }
.directory-card h2 a { font-weight:700 !important; }
.directory-location { min-width:0; display:flex; align-items:center; flex-wrap:nowrap; gap:6px; margin:4px 0 8px; overflow:hidden; color:var(--muted); font-size:14px; line-height:20px; }
.directory-location svg { width:16px; height:16px; flex:0 0 16px; }
.directory-location-text { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.website-label { display:inline-flex; flex:0 0 auto; align-items:center; gap:6px; margin-left:12px; color:var(--muted); text-decoration:none; white-space:nowrap; transition:color .18s ease; }
.website-label svg { width:16px; height:16px; flex:0 0 16px; }
.website-label:hover { color:var(--pink); text-decoration:underline; }
.directory-tags { display:flex; flex-wrap:wrap; gap:8px; }
.directory-tags span { display:inline-flex; align-items:center; min-height:0; padding:2px 10px; border:1px solid transparent; border-radius:999px; color:#0f172a; background:#f1f5f9; font-size:12px; line-height:16px; font-weight:600 !important; }
.directory-excerpt { display:-webkit-box; max-width:950px; margin:8px 0 0; overflow:hidden; color:var(--muted); font-size:14px; line-height:20px; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.favourite-button { position:absolute; top:24px; right:24px; min-width:72px; min-height:36px; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:0 7px; border:1px solid var(--line); border-radius:7px; color:var(--ink); background:#fff; font-size:13px; line-height:18px; font-weight:600 !important; touch-action:manipulation; -webkit-tap-highlight-color:transparent; transition:color .18s ease,border-color .18s ease,background-color .18s ease; }
body:not(.admin-app) .favourite-button,
body:not(.admin-app) .favourite-button span { font-weight:600 !important; }
.favourite-button svg { width:18px; height:18px; }
.favourite-button:hover { border-color:#eaf0f4; color:var(--ink); background:#f8fafc; }
.favourite-button[aria-pressed="true"] { min-width:82px; border-color:var(--pink); color:#fff; background:var(--pink); }
.favourite-button[aria-pressed="true"] svg { fill:currentColor; }
.favourite-button:disabled { opacity:.55; cursor:default; }
.directory-filters { position:sticky; top:94px; min-width:0; margin-top:-10px; padding:0 0 24px; }
.filter-head { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; }
.filter-head h2 { margin:0; font-size:16px; line-height:24px; font-weight:600; }
.filter-clear { min-height:44px; padding:0 14px; border:0; border-radius:8px; color:var(--ink); background:transparent; font-size:14px; line-height:24px; font-weight:600; transition:background-color .18s ease; }
.filter-clear[hidden] { display:none !important; }
.filter-clear:hover { color:var(--ink); background:#f1f5f9; }
.filter-label { display:grid; gap:6px; margin-bottom:24px; font-size:14px; line-height:20px; font-weight:600; }
.filter-label select { width:100%; height:40px; padding:0 12px; border:1px solid var(--line); border-radius:7px; color:var(--ink); background:#fff; outline:0; font-size:14px; }
.filter-label select:focus { border-color:#cbd5e1; box-shadow:0 0 0 2px rgba(100,116,139,.08); }
.filter-group { display:grid; gap:9px; margin:0 0 24px; padding:0; border:0; }
.filter-group legend { margin-bottom:10px; font-size:14px; line-height:20px; font-weight:600; }
.filter-group label { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:start; gap:8px; font-size:14px; line-height:20px; cursor:pointer; }
.filter-group input { width:17px; height:17px; margin:1px 0 0; accent-color:#2563eb; }
.load-more { min-width:128px; min-height:40px; display:flex; align-items:center; justify-content:center; margin:24px auto 0; padding:0 16px; border:1px solid var(--line); border-radius:7px; color:var(--ink); background:#fff; font-size:14px; font-weight:500; }
.load-more:hover { border-color:#eaf0f4; color:var(--ink); background:#f8fafc; }
.load-more[hidden] { display:none; }
.directory-status { margin:20px 0 0; color:#b91c1c; text-align:center; font-size:13px; }
.directory-status:empty { display:none; }
.filter-country-picker,.filter-language-picker { position:relative; }
.filter-country-input { width:100%; height:40px; padding:0 36px 0 12px; border:1px solid var(--line); border-radius:7px; color:var(--ink); background:#fff; outline:0; cursor:pointer; font-size:14px; font-weight:400; }
.filter-country-input:focus { border-color:#cbd5e1; box-shadow:0 0 0 2px rgba(100,116,139,.08); }
.filter-country-chevron { position:absolute; top:50%; right:12px; width:16px; height:16px; color:#64748b; pointer-events:none; transform:translateY(-50%); }
.filter-country-chevron svg { width:16px; height:16px; }
.filter-country-options { position:absolute; top:calc(100% + 4px); right:0; left:0; z-index:30; max-height:300px; overflow-y:auto; padding:4px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:0 10px 22px rgba(15,23,42,.14); }
.filter-country-option { width:100%; min-height:34px; display:grid; grid-template-columns:18px minmax(0,1fr); align-items:center; gap:6px; padding:6px 8px; border:0; border-radius:4px; color:var(--ink); background:#fff; text-align:left; font-size:14px; line-height:20px; font-weight:400; }
.filter-country-option:hover { background:#f7f8fb; }
.filter-country-option.selected { background:#eef2f7; }
.filter-country-option > span:first-child { color:var(--ink); text-align:center; }
.directory-results:has(.directory-empty:not([hidden])) .directory-list-shell { min-height:60px; }
.directory-empty { min-height:88px; display:grid; place-items:center; padding:0 20px; border:0; border-radius:0; color:var(--muted); background:transparent; text-align:center; }
.directory-empty[hidden] { display:none; }
[data-directory-loading][hidden] { display:none; }
.directory-loader { display:flex; align-items:center; justify-content:center; gap:12px; color:var(--muted); font-size:14px; font-weight:500; }
.directory-list-loader { position:absolute; inset:0; z-index:4; min-height:180px; align-items:flex-start; box-sizing:border-box; padding-top:96px; border-radius:8px; background:rgba(255,255,255,.78); backdrop-filter:blur(1px); }
.directory-spinner { width:28px; height:28px; flex:0 0 28px; border:3px solid #fbd0df; border-top-color:var(--pink); border-radius:50%; animation:directory-spin .75s linear infinite; }
@keyframes directory-spin { to { transform:rotate(360deg); } }
.directory-boot { min-height:100vh; min-height:100dvh; flex:1 0 auto; display:grid; place-items:center; }
.directory-boot-loader { min-height:240px; }
.directory-page-loader { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; background:rgba(255,255,255,.92); backdrop-filter:blur(2px); }
.directory-page-loader-inner { min-width:180px; min-height:96px; padding:20px; }
.mobile-filter-button,.filter-backdrop,.mobile-filter-sheet { display:none; }
.directory-footer { flex:0 0 auto; margin-top:0; color:#fff; background:#0a0a0a; }
.directory-footer-inner { width:100%; max-width:var(--lbp-footer-max,1320px); margin:0 auto; padding:48px 24px 24px; }
.directory-footer-top { display:flex; flex-direction:column; gap:32px; }
.directory-footer-brand { display:flex; flex-direction:column; gap:12px; }
.directory-footer-brand > a { height:40px; display:flex; align-items:center; }
.directory-footer .directory-footer-brand img { width:auto; height:40px; filter:brightness(0) invert(1); }
.directory-footer .directory-footer-brand p { width:100%; max-width:280px; margin:0; color:rgba(255,255,255,.4); font-size:13px; line-height:1.625; font-weight:400; }
.footer-links { display:flex; gap:40px; }
.footer-links section { display:flex; min-width:0; flex-direction:column; gap:12px; }
.footer-links h3 { margin:0; color:#fff; font-size:13px; line-height:19.5px; font-weight:600; }
.footer-links nav { display:flex; flex-direction:column; gap:10px; }
.footer-links a { color:rgba(255,255,255,.4); font-size:13px; line-height:19.5px; font-weight:400; transition:color .18s ease; }
.footer-links a:hover { color:rgba(255,255,255,.7); }
.directory-footer-bottom { display:flex; flex-direction:column; gap:16px; margin-top:40px; padding-top:20px; border-top:1px solid rgba(255,255,255,.06); }
.directory-footer .footer-copy { width:100%; max-width:none; margin:0; color:rgba(255,255,255,.25); font-size:12px; line-height:16px; font-weight:400; }
.directory-footer-tools { width:max-content; max-width:100%; display:flex; align-items:center; gap:20px; }
.directory-footer-tools > button { flex:0 0 auto; padding:0; border:0; color:rgba(255,255,255,.4); background:transparent; font-size:12px; line-height:18px; white-space:nowrap; }
.directory-footer-tools select { width:auto; height:32px; padding:0 8px; border:1px solid rgba(255,255,255,.1); border-radius:6px; outline:0; color:rgba(255,255,255,.6); background:rgba(255,255,255,.05); font-size:12px; }
.directory-footer-tools select option { color:#fff; background:#0a0a0a; }
.directory-footer-tools > a { width:18px; height:18px; display:block; color:rgba(255,255,255,.3); }
.directory-footer-tools svg { width:18px; height:18px; stroke:currentColor; }
@media (min-width:768px) {
  .directory-footer-inner { padding:32px 60px 32px; }
  .directory-footer-top { flex-direction:row; justify-content:space-between; }
  .footer-links { gap:64px; }
  .directory-footer-bottom { flex-direction:row; align-items:center; justify-content:space-between; }
}
@media (min-width:1536px) {
  .directory-header { padding-inline:max(var(--lbp-shell-gutter),calc((100% - var(--lbp-shell-max)) / 2 + var(--lbp-shell-gutter))); }
}
.directory-detail-shell { width:100%; max-width:var(--lbp-shell-max); min-height:0; flex:0 0 auto; margin:0 auto; padding:32px var(--lbp-shell-gutter); }
.directory-detail-pending { display:grid; place-items:center; }
.directory-detail-loader { min-height:320px; }
a.detail-back { min-height:36px; display:inline-flex; align-items:center; gap:8px; margin-bottom:24px; padding:0 12px; border-radius:6px; font-size:14px; line-height:20px; font-weight:500 !important; transition:background-color .18s ease; }
.detail-back:hover { color:var(--ink); background:#f1f5f9; }
.detail-back svg { width:16px; height:16px; }
.detail-identity { display:flex; align-items:center; gap:16px; margin-bottom:32px; }
.detail-image { position:relative; width:128px; height:128px; display:block; overflow:hidden; border-radius:8px; color:var(--pink); background:#f1f5f9; font-size:36px; font-weight:700; }
.detail-image > span { position:absolute; inset:0; display:grid; place-items:center; }
.detail-image img { position:absolute; inset:0; width:100%; height:100%; display:block; }
.detail-image-clinics img { padding:4px; object-fit:contain; object-position:center; }
.detail-image-lawyers img { object-fit:cover; object-position:top; }
.detail-identity h1 { margin:0 0 4px; font-size:30px; line-height:36px; font-weight:700; }
.detail-location,.detail-language { display:flex; align-items:center; gap:6px; margin:0; color:var(--muted); font-size:16px; line-height:24px; }
.detail-language { margin-top:8px; font-size:14px; line-height:20px; }
a.detail-location:hover { color:var(--pink); }
.detail-location svg,.detail-language svg { width:16px; height:16px; }
.detail-columns { display:grid; grid-template-columns:minmax(0,2.05fr) minmax(320px,1fr); gap:24px; align-items:start; }
.directory-detail-section { margin-bottom:24px; padding:24px; border:1px solid var(--line); border-radius:8px; background:#fff; }
.directory-detail-section > h2 { display:flex; align-items:center; gap:8px; margin:0 0 16px; font-size:18px; line-height:28px; font-weight:700 !important; }
.directory-detail-section > h2 > span { font-weight:700 !important; }
.directory-detail-section > h2 svg { width:19px; height:19px; }
.directory-detail-section > h3 { display:flex; align-items:center; gap:8px; margin:0 0 12px; font-size:16px; line-height:24px; font-weight:700 !important; }
.directory-detail-section > h3 > span { font-weight:700 !important; }
.directory-detail-section > h3 svg { width:16px; height:16px; }
.detail-tags span { font-size:12px; }
.detail-copy { margin:0; color:#334155; font-size:14px; line-height:24px; white-space:pre-line; }
.detail-copy + .detail-copy { margin-top:16px; }
.clinic-service-groups { display:grid; gap:16px; }
.clinic-service-group h3 { display:block; margin:0 0 8px; color:var(--muted); font-size:14px; line-height:20px; font-weight:500; }
.services-section .directory-tags span { font-weight:600 !important; }
.hours-section .detail-copy { color:var(--ink); line-height:20px; }
.contact-list { display:grid; gap:12px; }
.contact-list a,.contact-list p { display:flex; align-items:center; gap:8px; margin:0; color:var(--pink); font-size:14px; line-height:20px; }
.contact-list p { color:var(--ink); }
.contact-list p { align-items:flex-start; }
.contact-list .contact-muted { color:var(--muted); }
.contact-list svg { width:16px; height:16px; margin:0; }
.contact-list a svg:last-child { width:12px; height:12px; margin:0; }
.social-section { min-height:90px; }
.detail-socials { display:flex; align-items:center; gap:12px; }
.detail-socials a { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; color:var(--muted); background:#f1f5f9; transition:color .18s ease,background-color .18s ease; }
.detail-socials a:hover { color:var(--pink); background:#fde8f0; }
.detail-socials svg { width:20px; height:20px; }
@media (max-width:1100px) {
  .directory-header { gap:40px; padding-inline:var(--lbp-shell-gutter); }
  .directory-nav { gap:4px; }
  .directory-nav a { padding:10px 20px; font-size:16px; }
  .directory-columns { grid-template-columns:minmax(0,1fr) 260px; gap:24px; }
  .directory-card-link { grid-template-columns:112px minmax(0,1fr); padding:20px 142px 20px 20px; }
  .directory-card-media { width:112px; height:112px; }
  .favourite-button { top:20px; right:20px; min-width:72px; }
}
@media (min-width:768px) and (max-width:900px) {
  .directory-header { grid-template-columns:auto 1fr; gap:10px; padding-inline:var(--lbp-shell-gutter); }
  .directory-nav,.sign-link,.signup-link { display:none; }
  .directory-account { justify-self:end; gap:7px; }
  .directory-menu { display:grid; place-items:center; }
}
@media (max-width:767px) {
  .directory-header { position:sticky; top:0; z-index:50; height:81px; min-height:81px; grid-template-columns:auto 1fr; gap:10px; padding:0 16px; background:rgba(255,255,255,.6); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
  .directory-logo img { width:80px; height:56px; }
  .directory-nav,.sign-link,.signup-link { display:none; }
  .directory-account { justify-self:end; gap:7px; }
  .icon-link { width:38px; height:38px; }
  .account-avatar { width:40px; height:40px; }
  .directory-menu { display:grid; place-items:center; }
  .directory-menu-panel { position:absolute; top:calc(100% + 6px); right:0; bottom:auto; z-index:60; width:clamp(176px,50vw,192px); max-height:none; display:grid; overflow:visible; padding:6px 0; border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 20px rgba(15,23,42,.15); transform:translateY(-6px); }
  .directory-menu-panel.open { transform:translateY(0); }
  .directory-menu-panel > a,.directory-menu-panel > button { min-height:32px; margin:0; padding:0 12px; border:0; border-radius:0; background:transparent; font-size:14px; line-height:20px; font-weight:500; }
  .directory-menu-panel > a:hover,.directory-menu-panel > button:hover { background:#fafbfd; }
  .directory-menu-panel hr { margin:4px 0; }
  .directory-main { width:100%; padding:34px 16px 40px; }
  .directory-heading h1 { font-size:30px; line-height:36px; }
  .directory-heading p { font-size:16px; }
  .directory-toolbar { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
  .directory-search { min-width:0; flex:1; }
  .directory-columns { display:block; }
  .directory-filters { display:none; }
  .directory-results:has(.directory-empty:not([hidden])) .directory-list-shell { min-height:60px; }
  .directory-empty { min-height:120px; display:grid; place-items:center; padding:0 20px; border:0; border-radius:0; background:transparent; }
  .directory-empty[hidden] { display:none; }
  .directory-grid { gap:14px; }
  .directory-card { min-height:0; }
  .directory-card,
  .directory-card:hover,
  .directory-card:focus-within { border-color:var(--line); box-shadow:0 1px 2px rgba(0,0,0,.05); transition:none; }
  .directory-card-link { min-height:0; grid-template-columns:92px minmax(0,1fr); gap:14px; padding:16px 16px 70px; }
  .directory-card-media { width:92px; height:92px; font-size:28px; }
  .directory-card h2 { margin-top:1px; font-size:18px; line-height:28px; }
  .directory-location { font-size:14px; line-height:20px; }
  .website-label { margin-left:8px; }
  .directory-tags span { min-height:22px; padding:2px 10px; font-size:12px; line-height:16px; }
  .directory-excerpt { grid-column:1/-1; font-size:14px; line-height:20px; }
  .directory-search input { font-size:16px; }
  .favourite-button { left:16px; right:16px; top:auto; bottom:14px; width:calc(100% - 32px); min-height:42px; }
  .mobile-filter-button { position:relative; height:40px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:0 16px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:#fff; box-shadow:none; font-size:14px; line-height:20px; font-weight:600; }
  .mobile-filter-button:hover { color:var(--ink); background:#f8fafc; }
  .mobile-filter-icon { position:relative; width:16px; height:16px; flex:0 0 16px; display:inline-flex; }
  .mobile-filter-button svg { width:16px; height:16px; flex:0 0 16px; }
  .mobile-filter-indicator { position:static; min-width:20px; height:20px; flex:0 0 auto; display:grid; place-items:center; padding:0 5px; border:0; border-radius:999px; background:var(--pink); color:#fff; box-shadow:none; font-size:12px; line-height:1; font-weight:700; pointer-events:none; }
  .mobile-filter-indicator[hidden] { display:none; }
  .filter-backdrop { position:fixed; inset:0; z-index:2147482000; touch-action:none; background:rgba(0,0,0,.5); }
  .mobile-filter-sheet { position:fixed; top:12dvh; right:0; bottom:0; left:0; z-index:2147482001; max-height:none; display:none; overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y; -webkit-overflow-scrolling:touch; padding:24px 24px max(24px,env(safe-area-inset-bottom)); border-radius:16px 16px 0 0; background:#fff; box-shadow:0 -8px 28px rgba(15,23,42,.18); }
  .mobile-filter-sheet::before { display:none; }
  body.filters-open > .filter-backdrop,body.filters-open > .mobile-filter-sheet { display:block !important; visibility:visible !important; }
  body.filters-open > .filter-backdrop { animation:directory-filter-fade-in 140ms ease-out both; }
  body.filters-open > .mobile-filter-sheet { animation:directory-filter-slide-in 170ms cubic-bezier(.22,1,.36,1) both; }
  body.filters-open.filters-closing > .filter-backdrop { pointer-events:none; animation:directory-filter-fade-out 140ms ease-in both; }
  body.filters-open.filters-closing > .mobile-filter-sheet { pointer-events:none; animation:directory-filter-slide-out 160ms ease-in both; }
  .mobile-filter-header { min-height:40px; display:grid; grid-template-columns:minmax(0,1fr) auto 40px; align-items:center; gap:8px; margin-bottom:16px; }
  .mobile-filter-header h2 { margin:0; font-size:18px; line-height:28px; font-weight:600; }
  .mobile-filter-clear { grid-column:2; min-height:36px; padding:0 8px; white-space:nowrap; }
  .filter-close { grid-column:3; width:40px; height:40px; display:grid; place-items:center; margin-left:auto; padding:0; border:0; border-radius:6px; color:var(--ink); background:transparent; }
  .filter-close:hover { background:#f8fafc; }
  .filter-close svg { width:16px; height:16px; }
  .mobile-filter-sheet .filter-head { min-height:24px; align-items:center; margin-bottom:24px; }
  .mobile-filter-sheet .filter-head h2 { font-size:16px; line-height:24px; }
  .mobile-filter-sheet .filter-group { display:grid; gap:8px; }
  .mobile-filter-sheet .filter-group legend { margin-bottom:6px; }
  .mobile-filter-sheet .filter-group label { display:flex; align-items:center; gap:8px; }
  .mobile-filter-sheet .filter-group input { width:13px; height:13px; margin:0; }
  .mobile-filter-select { width:100%; height:40px; padding:0 12px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:#fff; outline:0; cursor:pointer; font-size:16px; font-weight:400; }
  .filter-apply { width:100%; height:40px; display:flex; align-items:center; justify-content:center; padding:0 16px; border:0; border-radius:6px; color:#fff; background:var(--pink); font-size:14px; line-height:20px; font-weight:600; }
  .filter-apply:hover { background:var(--pink-dark); }
  .favourite-button span { display:none; }
  .directory-detail-shell { width:100%; min-height:0; padding:32px 16px; }
  a.detail-back { margin-bottom:24px; }
  .detail-identity { flex-direction:column; align-items:stretch; gap:16px; margin-bottom:32px; }
  .detail-image { width:128px; height:128px; font-size:28px; }
  .detail-image-clinics { width:96px; height:96px; }
  .detail-identity > div:last-child { width:100%; min-width:0; }
  .detail-identity h1 { margin-bottom:4px; font-size:24px; line-height:32px; }
  .detail-location { font-size:16px; line-height:24px; }
  .detail-language { margin-top:8px; font-size:14px; line-height:20px; }
  .detail-columns { grid-template-columns:1fr; gap:0; }
  .directory-detail-section { padding:24px; }
  .directory-detail-section .directory-tags span { min-height:0; }
}
@keyframes directory-filter-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes directory-filter-fade-out { from { opacity:1; } to { opacity:0; } }
@keyframes directory-filter-slide-in { from { opacity:.65; transform:translate3d(0,24px,0); } to { opacity:1; transform:translate3d(0,0,0); } }
@keyframes directory-filter-slide-out { from { opacity:1; transform:translate3d(0,0,0); } to { opacity:.4; transform:translate3d(0,24px,0); } }
@media (hover:none) {
  .directory-menu:hover { background:transparent; }
  .directory-card:hover { border-color:var(--line); box-shadow:0 1px 2px rgba(0,0,0,.05); }
  .favourite-button:hover { border-color:var(--line); color:var(--ink); background:#fff; }
  .favourite-button[aria-pressed="true"]:hover { border-color:var(--pink); color:#fff; background:var(--pink); }
}
@media (prefers-reduced-motion:reduce) {
  body.filters-open > .filter-backdrop,body.filters-open > .mobile-filter-sheet { animation:none !important; }
}
