/* ═══════════════════════════════════════════════════════════════════
   Doctorna — Healthcare Directory
   Design system

   Editorial, warm, quiet. The canvas is a warm off-white so white
   surfaces read as objects placed on it rather than as the page
   itself; that is what stops a data-heavy product looking like an
   admin panel. Colour is used sparingly and only to mean something:
   blue #2899E5 = verified / primary action. Everything else is neutral.

   Type: Manrope for everything editorial, IBM Plex Mono reserved for
   micro-labels and figures, which keeps numbers legible and gives the
   page its "instrument" character without shouting.
   ═══════════════════════════════════════════════════════════════════ */

:root{
  /* canvas + ink — Doctorna blue-tinted neutrals */
  --paper:#F5F8FC;
  --paper-2:#EAF1F8;
  --card:#FFFFFF;
  --card-warm:#FBFDFF;
  --ink:#0F1E32;
  --ink-2:#334155;
  --ink-3:#47586E;
  --muted:#55697C;
  --muted-2:#7C8EA0;
  --muted-3:#90A2B3;

  /* lines */
  --line:#DFE8F2;
  --line-soft:#EAF0F7;
  --line-warm:#D8E4F0;

  /* primary — Doctorna brand blue */
  --blue:#2899E5;
  --blue-deep:#1B7ABF;
  --blue-ink:#14608F;
  --blue-bright:#5FB8F0;
  --blue-wash:#EDF6FE;
  --blue-line:#C7E3F8;

  /* dark surfaces */
  --dark:#0F1E32;
  --dark-2:#16283F;
  --dark-line:#25384F;
  --dark-ink:#D7E3EF;
  --dark-muted:#8A9CB0;

  /* status — used sparingly, never as brand */
  --amber:#B4761B;
  --amber-wash:#FBF3E3;
  --amber-line:#EDDCBB;
  --red:#B42318;
  --red-wash:#FEF3F2;
  --red-line:#FCCFC9;

  /* radii */
  --r-2:6px; --r-3:8px; --r-4:10px; --r-5:12px; --r-6:16px; --r-7:20px; --r-8:24px; --r-9:32px;

  /* elevation — barely there */
  --sh-1:0 1px 2px rgba(15,30,50,.04);
  --sh-2:0 2px 6px -2px rgba(15,30,50,.07), 0 1px 2px rgba(15,30,50,.04);
  --sh-3:0 12px 28px -14px rgba(15,30,50,.18), 0 2px 6px -2px rgba(15,30,50,.05);
  --sh-4:0 28px 60px -28px rgba(15,30,50,.24), 0 4px 12px -6px rgba(15,30,50,.07);
  --sh-5:0 44px 90px -40px rgba(15,30,50,.32);
  --sh-blue:0 10px 24px -12px rgba(40,153,229,.55);
  --ring:0 0 0 3px rgba(40,153,229,.22);

  --shell:1280px;
  --util:34px;
  --hdr:72px;
  --hdr-sm:60px;

  --font:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --ease:cubic-bezier(.22,.61,.36,1)}

*,*::before,*::after{box-sizing:border-box}
/* Author display rules outrank the UA [hidden] rule; everything here is shown
   and hidden by that attribute, so make it win. */
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font);font-size:15px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{max-width:100%}
h1,h2,h3,h4{margin:0;line-height:1.12;letter-spacing:-.028em;font-weight:750}
p{margin:0}
dl,dt,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-3)}
::selection{background:var(--blue-wash);color:var(--blue-deep)}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-999px;top:8px;z-index:300;background:#fff;padding:11px 18px;border-radius:var(--r-4);box-shadow:var(--sh-3);font-weight:700}
.skip-link:focus{left:16px}

.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:clamp(18px,3.6vw,40px)}

.muted,.dim{color:var(--muted)}
.link-brand{color:var(--blue-deep);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
.link-brand:hover{color:var(--blue)}
.mono{font-family:var(--mono);font-weight:450;font-size:.92em;letter-spacing:-.01em}

/* ── micro-label ─────────────────────────────────────────── */
.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.17em;text-transform:uppercase;color:var(--blue);
}
.eyebrow::before{content:"";width:18px;height:1.5px;background:var(--blue);border-radius:2px;flex:none}

/* ── section furniture ───────────────────────────────────── */
.section{padding-block:clamp(44px,4.6vw,72px)}
.section-tight{padding-block:clamp(36px,3.6vw,56px)}
.section-head{max-width:64ch;margin-bottom:clamp(22px,2.4vw,34px)}
.section-head-row{
  display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap;
  margin-bottom:clamp(22px,2.4vw,34px);
}
.section-head-row .section-head{margin-bottom:0}
.section-title{font-size:clamp(27px,3.1vw,42px);letter-spacing:-.034em;line-height:1.08}
.section-title em{font-style:normal;color:var(--blue)}
.section-sub{margin-top:14px;font-size:clamp(14.5px,1.1vw,16.5px);color:var(--muted);line-height:1.62;max-width:58ch}

/* ── buttons ─────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  border:1px solid transparent;border-radius:var(--r-4);
  padding:11px 18px;font-weight:700;font-size:14px;letter-spacing:-.006em;
  cursor:pointer;background:none;white-space:nowrap;
  transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),box-shadow .24s var(--ease),transform .14s var(--ease);
}
.btn:active{transform:translateY(1px)}
.btn svg{width:16px;height:16px;flex:none}
.btn-primary{background:var(--blue);color:#fff;box-shadow:var(--sh-blue)}
.btn-primary:hover{background:var(--blue-deep);box-shadow:0 14px 28px -12px rgba(40,153,229,.6)}
.btn-outline{background:var(--card);border-color:var(--line);color:var(--ink-2)}
.btn-outline:hover{border-color:var(--blue-line);background:var(--blue-wash);color:var(--blue-deep)}
.btn-ghost{color:var(--ink-2)}
.btn-ghost:hover{background:rgba(15,30,50,.05)}
.btn-quiet{color:var(--blue);padding:7px 11px;font-size:13px;border-radius:var(--r-3)}
.btn-quiet:hover:not(:disabled){background:var(--blue-wash)}
.btn-quiet:disabled{color:var(--muted-3);cursor:default}
.btn-lg{padding:14px 26px;font-size:15px;border-radius:var(--r-5)}
.btn-on-dark{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.2)}
.btn-on-dark:hover{background:rgba(255,255,255,.17);border-color:rgba(255,255,255,.3)}

.pill{
  display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;
  border-radius:999px;background:var(--blue);color:#fff;
  font-family:var(--mono);font-size:10.5px;font-weight:600;
}

.arrow-link{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:var(--blue)}
.arrow-link svg{width:15px;height:15px;transition:transform .26s var(--ease)}
.arrow-link:hover svg{transform:translateX(4px)}

/* ── tags & badges ───────────────────────────────────────── */
.tag{
  display:inline-flex;align-items:center;gap:5px;max-width:100%;
  border:1px solid var(--line);border-radius:var(--r-2);
  background:var(--card-warm);color:var(--ink-3);
  padding:3px 8px;font-size:11.5px;font-weight:650;line-height:1.5;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.tag-blue{background:var(--blue-wash);border-color:var(--blue-line);color:var(--blue-deep)}
.tag-blue{background:var(--blue-wash);border-color:var(--blue-line);color:var(--blue-deep)}
.tag-amber{background:var(--amber-wash);border-color:var(--amber-line);color:var(--amber)}
.tag svg{width:12px;height:12px;flex:none}

/* the verification mark — the one badge that must read instantly */
.verified{
  display:inline-flex;align-items:center;gap:5px;flex:none;
  font-family:var(--mono);font-size:9.5px;font-weight:600;
  letter-spacing:.11em;text-transform:uppercase;color:var(--blue);
}
.verified svg{width:13px;height:13px}
.verified-solid{
  border:1px solid var(--blue-line);background:var(--blue-wash);
  border-radius:var(--r-2);padding:3px 8px;letter-spacing:.09em;
}

/* ═══ UTILITY BAR ══════════════════════════════════════════ */
.utility-bar{height:var(--util);display:flex;align-items:center;background:var(--dark);color:var(--dark-muted);font-size:12px}
.utility-inner{display:flex;align-items:center;gap:18px;width:100%}
.utility-note{display:flex;align-items:center;gap:8px;margin-right:auto;min-width:0}
.utility-note svg{width:13px;height:13px;flex:none;color:var(--blue-bright)}
.utility-note span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.utility-link{color:var(--dark-ink);font-weight:600;transition:color .18s}
.utility-link:hover{color:#fff}
.utility-sep{width:1px;height:13px;background:var(--dark-line);flex:none}

/* ═══ HEADER ═══════════════════════════════════════════════ */
.site-header{
  position:sticky;top:0;z-index:90;
  background:rgba(247,245,240,.82);
  backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease);
}
.site-header.is-stuck{
  border-bottom-color:var(--line-warm);
  background:rgba(247,245,240,.92);
  box-shadow:0 1px 20px -12px rgba(15,30,50,.4);
}
.header-inner{height:var(--hdr);display:flex;align-items:center;gap:clamp(14px,2.2vw,30px);transition:height .3s var(--ease)}
.site-header.is-stuck .header-inner{height:var(--hdr-sm)}

.brand{display:inline-flex;align-items:center;gap:11px;flex:none}
.brand-mark{width:34px;height:34px;flex:none;border-radius:var(--r-4);transition:width .3s var(--ease),height .3s var(--ease)}
.site-header.is-stuck .brand-mark{width:30px;height:30px}
.brand-text{display:flex;flex-direction:column;min-width:0}
.brand-word{font-size:17px;font-weight:800;letter-spacing:-.036em;line-height:1.1}
.brand-sub{
  font-family:var(--mono);font-size:9px;font-weight:450;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted-2);line-height:1.4;
}

.site-nav{display:flex;align-items:center;gap:2px;margin-inline:auto}
.nav-link{
  position:relative;padding:9px 13px;border-radius:var(--r-3);
  font-size:14px;font-weight:600;color:var(--ink-3);
  transition:color .2s var(--ease),background .2s var(--ease);
}
.nav-link:hover{color:var(--ink);background:rgba(15,30,50,.045)}
.nav-link.is-active{color:var(--blue-deep)}
.nav-link.is-active::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:1.5px;background:var(--blue);border-radius:2px}
.header-actions{display:flex;align-items:center;gap:8px;flex:none}
.header-lang{
  font-size:13.5px;font-weight:700;color:var(--ink-3);
  padding:8px 11px;border-radius:var(--r-3);transition:background .18s,color .18s;
}
.header-lang:hover{background:rgba(15,30,50,.05);color:var(--ink)}

.menu-toggle{
  display:none;flex-direction:column;gap:4.5px;align-items:center;justify-content:center;
  width:42px;height:42px;border:1px solid var(--line);border-radius:var(--r-4);
  background:var(--card);cursor:pointer;flex:none;
}
.menu-toggle span{display:block;width:17px;height:1.8px;border-radius:2px;background:var(--ink-2);transition:transform .26s var(--ease),opacity .2s}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.3px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.3px) rotate(-45deg)}

/* ═══ HERO — vertical, editorial, search-led ═══════════════ */
.hero{position:relative;isolation:isolate;overflow:hidden;border-bottom:1px solid var(--line)}
.hero::before{
  content:"";position:absolute;inset:-30% -20% auto -20%;height:150%;z-index:-1;
  background:
    radial-gradient(46% 42% at 50% 0%,rgba(40,153,229,.13),transparent 68%),
    radial-gradient(38% 34% at 12% 8%,rgba(40,153,229,.07),transparent 72%),
    linear-gradient(180deg,#FFFFFF 0%,var(--paper) 62%);
}
.hero-inner{
  max-width:920px;margin-inline:auto;text-align:center;
  display:flex;flex-direction:column;align-items:center;
  padding-block:clamp(30px,3.4vw,48px) clamp(26px,2.8vw,38px);
}

.eyebrow-center{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--blue-line);background:var(--blue-wash);
  border-radius:999px;padding:6px 14px;color:var(--blue-deep);
}
.eyebrow-center::before{display:none}
.eyebrow-center i{width:3px;height:3px;border-radius:50%;background:var(--blue);flex:none}

.hero-title{
  margin-top:18px;max-width:21ch;
  font-size:clamp(30px,3.5vw,46px);letter-spacing:-.038em;line-height:1.08;font-weight:780;
  text-wrap:balance;
}
.hero-title em{display:block;font-style:normal;color:var(--blue);font-size:.72em;margin-top:8px;letter-spacing:-.03em}
.hero-sub{
  margin-top:14px;max-width:68ch;font-size:clamp(14.5px,1.15vw,16.5px);
  color:var(--ink-3);line-height:1.62;
}

.hero-proof{
  display:flex;align-items:center;justify-content:center;gap:10px 24px;flex-wrap:wrap;
  margin-top:18px;font-size:12.5px;color:var(--muted);
}
.hero-proof li{display:flex;align-items:center;gap:8px}
.hero-proof svg{width:15px;height:15px;color:var(--blue);flex:none}

/* ── unified search system ── */
.searchbar{
  width:100%;margin-top:clamp(22px,2.4vw,32px);text-align:left;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-8);
  box-shadow:var(--sh-4);padding:10px;
  transition:border-color .22s var(--ease),box-shadow .26s var(--ease);
}
.searchbar:focus-within{border-color:var(--blue-line);box-shadow:var(--ring),var(--sh-4)}

.sfield{position:relative;display:flex;align-items:center;gap:11px;min-width:0}
.sfield-main{
  padding:6px 8px 14px 12px;border-bottom:1px solid var(--line-soft);margin-bottom:10px;
}
.sfield-main > svg{width:21px;height:21px;color:var(--blue);flex:none}
.sfield-main input{
  flex:1;min-width:0;border:0;background:none;outline:none;padding:8px 0;
  font-size:clamp(15px,1.3vw,17px);font-weight:600;letter-spacing:-.016em;color:var(--ink);
}
.sfield-main input::placeholder{color:var(--muted-3);font-weight:500}
.sfield-main input::-webkit-search-cancel-button{display:none}

.searchbar-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:stretch}
.searchbar-row .sfield{
  border:1px solid var(--line);border-radius:var(--r-5);background:var(--paper);
  padding:9px 14px;transition:border-color .2s var(--ease),background .2s var(--ease);
}
.searchbar-row .sfield:hover{border-color:var(--blue-line);background:var(--blue-wash)}
.searchbar-row .sfield:focus-within{border-color:var(--blue);background:var(--card)}
.sfield-body{display:flex;flex-direction:column;min-width:0;flex:1}
.sfield-label{
  font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted-2);margin-bottom:2px;
}
.sfield select{
  width:100%;border:0;background:none;outline:none;padding:0;cursor:pointer;
  appearance:none;-webkit-appearance:none;padding-right:18px;text-overflow:ellipsis;
  font-size:14px;font-weight:650;letter-spacing:-.012em;color:var(--ink);
}
.sfield-caret{position:absolute;right:12px;bottom:12px;width:14px;height:14px;color:var(--muted-2);pointer-events:none}
.sfield-clear{
  display:grid;place-items:center;width:28px;height:28px;flex:none;border:0;border-radius:50%;
  background:var(--paper-2);color:var(--muted);cursor:pointer;transition:background .18s,color .18s;
}
.sfield-clear:hover{background:var(--line);color:var(--ink)}
.sfield-clear svg{width:12px;height:12px}
.searchbar-submit{display:flex}
.searchbar-submit .btn{height:100%;padding-inline:30px;border-radius:var(--r-5);font-size:14.5px}

/* ── popular ── */
.popular{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:18px}
.popular-label{
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted-2);margin-right:2px;
}
.popular-btn{
  border:1px solid var(--line);background:var(--card);border-radius:999px;
  padding:6px 14px;font-size:12.5px;font-weight:600;color:var(--ink-3);cursor:pointer;
  transition:border-color .2s var(--ease),background .2s var(--ease),color .2s var(--ease);
}
.popular-btn:hover{border-color:var(--blue-line);background:var(--blue-wash);color:var(--blue-deep)}

/* ── verified dataset figures ── */
.hero-stats{
  display:grid;grid-template-columns:repeat(4,1fr);width:100%;
  margin-top:clamp(22px,2.4vw,30px);border-top:1px solid var(--line);padding-top:18px;
}
.hero-stats > div{
  min-width:0;padding-inline:16px;border-left:1px solid var(--line);
  display:flex;flex-direction:column;align-items:center;
}
.hero-stats > div:first-child{border-left:0}
.hero-stats dd{
  font-size:clamp(24px,2.6vw,34px);font-weight:780;letter-spacing:-.04em;line-height:1;
  color:var(--ink);font-variant-numeric:tabular-nums;
}
.hero-stats > div:first-child dd{color:var(--blue)}
.hero-stats dt{
  margin-top:8px;font-size:12px;color:var(--muted);
  font-family:var(--mono);letter-spacing:.06em;
}

.hero-source{
  display:flex;align-items:center;gap:7px;margin-top:16px;
  font-size:11.5px;color:var(--muted-2);
}
.hero-source svg{width:13px;height:13px;flex:none}

/* ═══ DIRECTORY ════════════════════════════════════════════ */
.directory{padding-top:clamp(30px,3.2vw,48px);padding-bottom:clamp(20px,2.2vw,36px);scroll-margin-top:calc(var(--hdr) + 12px)}
.directory-bar{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding-bottom:20px;border-bottom:1px solid var(--line-warm);margin-bottom:24px;
}
.directory-id{min-width:0}
.directory-title{font-size:clamp(21px,2.1vw,27px);letter-spacing:-.032em}
.directory-count{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-top:8px;font-size:13.5px;color:var(--muted)}
.directory-count strong{font-size:16px;font-weight:750;color:var(--ink);letter-spacing:-.022em;font-variant-numeric:tabular-nums}
.directory-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap}

.seg{display:flex;gap:2px;padding:3px;background:var(--paper-2);border:1px solid var(--line-warm);border-radius:var(--r-4)}
.seg-btn{
  display:inline-flex;align-items:center;gap:7px;border:0;background:none;cursor:pointer;
  border-radius:var(--r-2);padding:7px 12px;font-size:13px;font-weight:700;color:var(--muted);
  transition:background .2s var(--ease),color .2s var(--ease),box-shadow .2s var(--ease);
}
.seg-btn:hover{color:var(--ink-2)}
.seg-btn.is-active{background:var(--card);color:var(--ink);box-shadow:var(--sh-1)}
.seg-btn svg{width:15px;height:15px}
.seg-count{
  font-family:var(--mono);font-size:10.5px;font-weight:500;color:var(--muted-2);
  padding:1px 6px;border-radius:999px;background:var(--card-warm);
}
.seg-btn.is-active .seg-count{background:var(--blue-wash);color:var(--blue-deep)}
.seg-icon .seg-btn{padding:7px 9px}

.select-wrap{position:relative;display:inline-flex;align-items:center}
.select-wrap select{
  appearance:none;-webkit-appearance:none;cursor:pointer;outline:none;
  border:1px solid var(--line);border-radius:var(--r-4);background:var(--card);
  padding:9px 34px 9px 13px;font-size:13px;font-weight:700;color:var(--ink-2);
  transition:border-color .2s var(--ease);
}
.select-wrap select:hover{border-color:var(--blue-line)}
.select-caret{position:absolute;right:12px;width:14px;height:14px;color:var(--muted-2);pointer-events:none}

.workspace{display:grid;grid-template-columns:274px minmax(0,1fr);gap:clamp(22px,2.4vw,38px);align-items:start}

/* ── filter rail ─────────────────────────────────────────── */
.filter-panel{
  position:sticky;top:calc(var(--hdr) + 16px);
  max-height:calc(100vh - var(--hdr) - 32px);
  display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-7);
  box-shadow:var(--sh-2);overflow:hidden;
}
.filter-panel-head{display:flex;align-items:center;gap:10px;flex:none;padding:16px 16px 14px;border-bottom:1px solid var(--line-soft)}
.filter-panel-id{margin-right:auto;min-width:0}
.filter-panel-id h3{font-size:14.5px;letter-spacing:-.026em}
.filter-panel-id p{font-size:11.5px;color:var(--muted-2);margin-top:2px}
.drawer-close,.drawer-foot{display:none}

.filter-scroll{
  flex:1;overflow-y:auto;overscroll-behavior:contain;padding:6px 8px 12px;
  scrollbar-width:thin;scrollbar-color:var(--line) transparent;
}
.filter-scroll::-webkit-scrollbar{width:10px}
.filter-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px;border:3px solid var(--card)}

.fgroup{border-bottom:1px solid var(--line-soft)}
.fgroup:last-child{border-bottom:0}
.fgroup-head{
  width:100%;display:flex;align-items:center;gap:9px;border:0;background:none;cursor:pointer;
  text-align:left;padding:13px 9px;border-radius:var(--r-3);
}
.fgroup-head:hover{background:var(--paper)}
.fgroup-title{flex:1;min-width:0;font-size:12.5px;font-weight:750;letter-spacing:-.012em;color:var(--ink-2)}
.fgroup-badge{
  display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 6px;
  border-radius:999px;background:var(--blue);color:#fff;
  font-family:var(--mono);font-size:10px;font-weight:600;
}
.fgroup-caret{width:14px;height:14px;color:var(--muted-3);transition:transform .26s var(--ease);flex:none}
.fgroup[data-open="false"] .fgroup-caret{transform:rotate(-90deg)}
.fgroup-body{padding:0 9px 14px}
.fgroup[data-open="false"] .fgroup-body{display:none}

.fgroup-tools{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.fgroup-tools:empty{display:none}
.opt-search{position:relative;flex:1;min-width:0;margin:0}
.opt-search input{
  width:100%;border:1px solid var(--line);border-radius:var(--r-3);background:var(--paper);
  padding:8px 11px 8px 30px;font-size:12.5px;outline:none;
  transition:border-color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease);
}
.opt-search input:focus{border-color:var(--blue-line);background:var(--card);box-shadow:var(--ring)}
.opt-search input::-webkit-search-cancel-button{display:none}
.opt-search svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--muted-3)}
.fgroup-clear{
  flex:none;border:0;background:none;cursor:pointer;padding:5px 7px;border-radius:var(--r-2);
  font-size:11.5px;font-weight:700;color:var(--blue);
}
.fgroup-clear:hover{background:var(--blue-wash)}

.opt-list{display:flex;flex-direction:column;gap:1px}
.opt{display:flex;align-items:center;gap:9px;cursor:pointer;padding:6px 7px;border-radius:var(--r-3);transition:background .16s var(--ease)}
.opt:hover{background:var(--paper)}
.opt input{position:absolute;opacity:0;width:0;height:0}
.opt-box{
  display:grid;place-items:center;width:16px;height:16px;flex:none;
  border:1.5px solid #C3D0DE;border-radius:var(--r-2);background:var(--card);
  transition:background .18s var(--ease),border-color .18s var(--ease);
}
.opt-box svg{width:10px;height:10px;color:#fff;opacity:0;transition:opacity .16s}
.opt input:checked + .opt-box{background:var(--blue);border-color:var(--blue)}
.opt input:checked + .opt-box svg{opacity:1}
.opt input:focus-visible + .opt-box{box-shadow:var(--ring)}
.opt-label{flex:1;min-width:0;font-size:12.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opt input:checked ~ .opt-label{font-weight:700;color:var(--ink)}
.opt-count{font-family:var(--mono);font-size:10.5px;color:var(--muted-2);flex:none;font-variant-numeric:tabular-nums}
.opt-none{font-size:12px;color:var(--muted-3);padding:9px 7px}
.opt-pinned{padding-bottom:7px;margin-bottom:7px;border-bottom:1px dashed var(--line)}
.opt-more{
  width:100%;margin-top:8px;border:0;background:none;cursor:pointer;padding:6px 7px;
  border-radius:var(--r-3);font-size:12px;font-weight:700;color:var(--blue);text-align:left;
}
.opt-more:hover{background:var(--blue-wash)}

.seg-row{display:flex;flex-wrap:wrap;gap:6px}
.seg-chip{
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  border:1px solid var(--line);border-radius:var(--r-3);background:var(--card);
  padding:6px 10px;font-size:12px;font-weight:650;color:var(--ink-3);
  transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease);
}
.seg-chip:hover{border-color:var(--blue-line);background:var(--blue-wash);color:var(--blue-deep)}
.seg-chip[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:#fff}
.seg-chip[aria-pressed="true"] .opt-count{color:rgba(255,255,255,.78)}

/* ── active chips ────────────────────────────────────────── */
.chip-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}
.chip-row:empty{display:none}
.chip{
  display:inline-flex;align-items:center;gap:7px;max-width:100%;
  border:1px solid var(--line);border-radius:var(--r-3);background:var(--card);
  padding:5px 6px 5px 10px;font-size:12.5px;font-weight:650;color:var(--ink-2);box-shadow:var(--sh-1);
}
.chip i{font-style:normal;font-family:var(--mono);font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted-2);font-weight:500}
.chip > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip button{
  display:grid;place-items:center;width:18px;height:18px;flex:none;border:0;border-radius:var(--r-2);
  background:var(--paper-2);color:var(--muted);cursor:pointer;transition:background .18s,color .18s;
}
.chip button:hover{background:var(--ink);color:#fff}
.chip button svg{width:10px;height:10px}
.chip-clear{background:transparent;border-style:dashed;color:var(--muted);cursor:pointer;padding:5px 12px;box-shadow:none}
.chip-clear:hover{border-color:var(--ink-3);color:var(--ink)}

/* ═══ RESULT CARDS ═════════════════════════════════════════ */
.results{min-width:0}
.card-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));align-items:start}
.card-grid.is-list{grid-template-columns:minmax(0,1fr)}

.card{
  position:relative;display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-6);
  padding:18px 18px 15px;
  transition:border-color .24s var(--ease),box-shadow .28s var(--ease),transform .24s var(--ease);
}
.card:hover{border-color:#CCDCEC;box-shadow:var(--sh-3);transform:translateY(-3px)}
.card:focus-within{border-color:var(--blue-line);box-shadow:var(--ring)}
.card-mark{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;min-height:16px}
.card-body{display:flex;gap:13px;min-width:0}
.card-head-text{min-width:0;flex:1}

.avatar{
  display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:var(--r-5);
  background:linear-gradient(152deg,#EFF7FE,#DCEDFB);border:1px solid var(--blue-line);
  color:var(--blue-deep);font-size:14px;font-weight:750;letter-spacing:-.02em;
}
.avatar.facility{background:linear-gradient(152deg,#F2F5F9,#E4EAF1);border-color:#D3DCE6;color:var(--ink-2)}
.avatar.facility svg{width:21px;height:21px}

.card-name{font-size:16px;font-weight:750;letter-spacing:-.03em;line-height:1.25}
.card-name a{display:block;outline:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-name a:hover{color:var(--blue-deep)}
.card-name a::after{content:"";position:absolute;inset:0;border-radius:var(--r-6)}
.card-role{margin-top:4px;font-size:13px;font-weight:600;color:var(--blue-deep);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-role.plain{color:var(--muted);font-weight:500}

.card-meta{display:flex;flex-direction:column;gap:7px;margin-top:14px}
.meta-row{display:flex;align-items:center;gap:9px;min-width:0;font-size:12.5px;color:var(--ink-3)}
.meta-row svg{width:14px;height:14px;flex:none;color:var(--muted-3)}
.meta-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meta-row.langs{color:var(--muted)}

.card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft)}
.card-cta{position:relative;z-index:1;display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--blue)}
.card-cta svg{width:15px;height:15px;transition:transform .26s var(--ease)}
.card:hover .card-cta svg{transform:translateX(4px)}
.save-btn{
  position:relative;z-index:1;display:grid;place-items:center;width:32px;height:32px;flex:none;
  border:1px solid var(--line);border-radius:var(--r-3);background:var(--card);
  color:var(--muted-2);cursor:pointer;
  transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease);
}
.save-btn:hover{color:var(--blue);border-color:var(--blue-line);background:var(--blue-wash)}
.save-btn[aria-pressed="true"]{color:#B4761B;border-color:#EDDCBB;background:#FBF3E3}
.save-btn svg{width:15px;height:15px}

/* list layout — same card, rearranged */
.is-list .card{flex-direction:row;align-items:center;gap:20px;padding:16px 20px;flex-wrap:wrap}
.is-list .card-mark{margin-bottom:0;order:2;flex-direction:column;align-items:flex-end;min-height:0}
.is-list .card-body{order:1;flex:1 1 260px;align-items:center}
.is-list .card-meta{margin-top:0;order:3;flex-direction:row;gap:18px;flex-wrap:wrap}
.is-list .card-foot{order:4;margin-top:0;padding-top:0;border-top:0;flex:none}
.is-list .card-name{font-size:15px}

/* ═══ SKELETON ═════════════════════════════════════════════ */
.skeleton-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(272px,1fr))}
.sk-card{display:flex;flex-direction:column;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-6);padding:18px}
.sk-top{display:flex;align-items:center;gap:13px}
.sk-avatar{width:46px;height:46px;border-radius:var(--r-5);flex:none;background:var(--paper-2)}
.sk-lines{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.sk-meta{display:flex;flex-direction:column;gap:9px;margin-top:2px}
.sk-tags{display:flex;gap:7px;margin-top:4px;padding-top:13px;border-top:1px solid var(--line-soft)}
.sk{
  display:block;height:9px;border-radius:99px;
  background:linear-gradient(90deg,var(--paper-2) 22%,#E2EBF4 38%,var(--paper-2) 60%);
  background-size:400% 100%;animation:shimmer 1.5s ease-in-out infinite;
}
.sk-tag{height:20px;width:84px;border-radius:var(--r-2)}
.sk-tag.sm{width:52px}
.w35{width:35%}.w40{width:40%}.w45{width:45%}.w50{width:50%}.w55{width:55%}
.w60{width:60%}.w65{width:65%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w85{width:85%}
@keyframes shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}

/* ═══ STATES ═══════════════════════════════════════════════ */
.state{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;
  padding:clamp(38px,5vw,60px) 26px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-7);
}
.state h3{font-size:19px;letter-spacing:-.028em}
.state p{font-size:14px;color:var(--muted);max-width:46ch}
.state-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r-6);background:var(--paper);border:1px solid var(--line);color:var(--muted-2)}
.state-ico svg{width:24px;height:24px}
.state-ico-alert{background:var(--red-wash);border-color:var(--red-line);color:var(--red)}
.state-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:6px}
.state-error{border-color:var(--red-line)}
.diag-toggle{
  display:inline-flex;align-items:center;gap:7px;margin-top:6px;border:0;background:none;
  cursor:pointer;font-size:12.5px;font-weight:650;color:var(--muted);padding:6px 8px;border-radius:var(--r-3);
}
.diag-toggle:hover{color:var(--ink);background:var(--paper)}
.diag-toggle svg{width:13px;height:13px;transition:transform .24s var(--ease)}
.diag-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.diag{
  width:100%;max-width:620px;margin:4px 0 0;padding:15px 17px;text-align:left;
  background:var(--dark);color:#C3D5E6;border-radius:var(--r-5);
  font-family:var(--mono);font-size:11.5px;line-height:1.7;
  white-space:pre-wrap;word-break:break-word;overflow-x:auto;
}

.results-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:26px;padding-top:20px;border-top:1px solid var(--line-warm)}
.showing{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.showing b{color:var(--ink-2);font-weight:750}

/* ═══ EDITORIAL GRID ═══════════════════════════════════════ */
.editorial{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.etile{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:200px;padding:22px;overflow:hidden;cursor:pointer;text-align:left;
  border:1px solid var(--line);border-radius:var(--r-7);background:var(--card);
  transition:border-color .26s var(--ease),box-shadow .3s var(--ease),transform .26s var(--ease);
}
.etile:hover{border-color:transparent;box-shadow:var(--sh-4);transform:translateY(-3px)}
.etile-lead{grid-column:span 2;grid-row:span 2;min-height:414px}
.etile-wide{grid-column:span 2}
.etile-plane{
  position:absolute;inset:0;z-index:0;
  background:linear-gradient(155deg,#14405F 0%,#102D47 62%,#0C2135 100%);
  transform:scale(1.02);transition:transform .6s var(--ease);
}
.etile:hover .etile-plane{transform:scale(1.09)}
.etile-plane::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(58% 48% at 26% 18%,rgba(40,153,229,.42),transparent 72%),
             radial-gradient(50% 44% at 84% 88%,rgba(40,153,229,.24),transparent 74%);
}
.etile-plane.p2{background:linear-gradient(155deg,#1B3A57 0%,#122a41 62%,#0A1B2B 100%)}
.etile-plane.p3{background:linear-gradient(155deg,#2A3648 0%,#1C2634 62%,#131C27 100%)}
.etile-plane.p4{background:linear-gradient(155deg,#373B4A 0%,#242835 62%,#171B25 100%)}
.etile-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(8,20,34,.82) 0%,rgba(8,20,34,.34) 46%,rgba(8,20,34,.06) 100%)}
.etile-grid{
  position:absolute;inset:0;z-index:1;opacity:.32;
  background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);
  background-size:40px 40px;
}
.etile-content{position:relative;z-index:2;color:#fff}
.etile-kicker{display:block;padding-right:34px;font-family:var(--mono);font-size:9.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.etile-name{margin-top:9px;font-size:clamp(18px,1.7vw,22px);font-weight:750;letter-spacing:-.03em}
.etile-lead .etile-name{font-size:clamp(24px,2.6vw,34px)}
.etile-figures{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:13px;color:rgba(255,255,255,.74)}
.etile-figures b{font-size:15px;font-weight:750;color:#fff;font-variant-numeric:tabular-nums}
.etile-lead .etile-figures{font-size:14.5px}
.etile-lead .etile-figures b{font-size:18px}
.etile-go{
  position:absolute;right:18px;top:18px;z-index:2;
  display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(6px);color:#fff;
  transition:background .26s var(--ease),transform .26s var(--ease);
}
.etile:hover .etile-go{background:var(--blue);border-color:var(--blue);transform:translate(3px,-3px)}
.etile-go svg{width:16px;height:16px}

/* ═══ FIGURES ROW ══════════════════════════════════════════ */
.figures{
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,40px);
  padding-bottom:clamp(28px,3.2vw,44px);
}
.figures > div{min-width:0}
.figures dd{
  font-size:clamp(30px,3.6vw,50px);font-weight:780;letter-spacing:-.045em;line-height:1;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.figures dt{
  margin-top:10px;font-size:13px;color:var(--muted);
  padding-top:10px;border-top:1px solid var(--line-warm);
}

/* ═══ TRUST ════════════════════════════════════════════════ */
.trust{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-warm)}
.trust-item{padding:26px 28px 24px 0;border-right:1px solid var(--line-warm)}
.trust-item:last-child{border-right:0;padding-right:0}
.trust-item:not(:first-child){padding-left:28px}
.trust-ico{
  display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-4);
  background:var(--blue-wash);border:1px solid var(--blue-line);color:var(--blue);margin-bottom:18px;
}
.trust-ico svg{width:19px;height:19px}
.trust-item h3{font-size:17px;letter-spacing:-.03em}
.trust-item p{margin-top:9px;font-size:13.5px;color:var(--muted);line-height:1.6}

/* ═══ FEATURED FACILITIES ══════════════════════════════════ */
.fac-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fac-card{
  position:relative;display:flex;flex-direction:column;overflow:hidden;text-align:left;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-7);cursor:pointer;
  transition:border-color .26s var(--ease),box-shadow .3s var(--ease),transform .26s var(--ease);
}
.fac-card:hover{border-color:#CCDCEC;box-shadow:var(--sh-3);transform:translateY(-3px)}
.fac-visual{position:relative;height:132px;overflow:hidden;background:linear-gradient(150deg,#144061,#0E2438)}
.fac-visual::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(56% 60% at 28% 24%,rgba(40,153,229,.44),transparent 72%);
  transition:transform .6s var(--ease);
}
.fac-card:hover .fac-visual::after{transform:scale(1.12)}
.fac-visual-grid{
  position:absolute;inset:0;opacity:.3;
  background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);
  background-size:34px 34px;
}
.fac-glyph{
  position:absolute;left:20px;bottom:16px;z-index:2;
  display:grid;place-items:center;width:42px;height:42px;border-radius:var(--r-4);
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(6px);color:#fff;
}
.fac-glyph svg{width:21px;height:21px}
.fac-visual .verified{position:absolute;right:16px;top:16px;z-index:2;color:#9FD4F7}
.fac-info{padding:16px 18px 17px;display:flex;flex-direction:column;flex:1}
.fac-name{font-size:16px;font-weight:750;letter-spacing:-.03em;line-height:1.28}
.fac-name a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fac-name a::after{content:"";position:absolute;inset:0}
.fac-sub{margin-top:7px;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fac-sub b{color:var(--ink-2);font-weight:700;font-variant-numeric:tabular-nums}
.fac-specs{display:flex;flex-wrap:wrap;gap:5px;margin-top:13px;padding-top:13px;border-top:1px solid var(--line-soft)}

/* ═══ SPECIALTY EXPLORER ═══════════════════════════════════ */
.spec-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(24px,3vw,48px)}
.spec-col{display:flex;flex-direction:column}
.spec-item{
  display:flex;align-items:center;gap:14px;padding:13px 4px;width:100%;text-align:left;
  border:0;border-bottom:1px solid var(--line-warm);background:none;cursor:pointer;
  transition:padding .24s var(--ease),color .2s var(--ease);
}
.spec-item:hover{padding-left:10px;color:var(--blue-deep)}
.spec-rank{font-family:var(--mono);font-size:10.5px;color:var(--muted-3);flex:none;width:20px;font-variant-numeric:tabular-nums}
.spec-name{flex:1;min-width:0;font-size:14px;font-weight:650;letter-spacing:-.018em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spec-count{font-family:var(--mono);font-size:11.5px;color:var(--muted);flex:none;font-variant-numeric:tabular-nums}
.spec-item:hover .spec-count{color:var(--blue)}

/* ═══ DARK CTA ═════════════════════════════════════════════ */
.cta-band{
  position:relative;overflow:hidden;border-radius:var(--r-9);
  background:linear-gradient(145deg,#12314F 0%,#102841 58%,#0B1725 100%);
  color:#fff;padding:clamp(34px,3.6vw,52px) clamp(26px,3.2vw,52px);
}
.cta-band::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(44% 62% at 88% 14%,rgba(40,153,229,.3),transparent 70%),
             radial-gradient(38% 54% at 6% 92%,rgba(40,153,229,.18),transparent 72%);
}
.cta-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.cta-copy{max-width:52ch;min-width:0}
.cta-copy .eyebrow{color:#9FD4F7}
.cta-copy .eyebrow::before{background:#9FD4F7}
.cta-copy h2{margin-top:14px;font-size:clamp(24px,2.6vw,34px);letter-spacing:-.036em;line-height:1.1}
.cta-copy p{margin-top:12px;font-size:14.5px;color:rgba(255,255,255,.68);line-height:1.6}
.cta-actions{display:flex;gap:11px;flex-wrap:wrap;flex:none}
.cta-actions .btn-primary{background:#fff;color:var(--dark);box-shadow:none}
.cta-actions .btn-primary:hover{background:#EDF6FE}

/* ═══ SEO COLUMNS ══════════════════════════════════════════ */
.seo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(22px,2.6vw,40px)}
/* Grid items default to min-width:auto, so a long label makes the column
   refuse to shrink and pushes the page sideways. */
.seo-col{min-width:0}
.seo-col h3{
  font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted-2);padding-bottom:11px;border-bottom:1px solid var(--line-warm);
}
.seo-col ul{margin-top:12px;display:flex;flex-direction:column;gap:2px}
.seo-link{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  width:100%;min-width:0;text-align:left;
  padding:5px 0;font-size:13px;color:var(--ink-3);cursor:pointer;background:none;border:0;
  transition:color .18s var(--ease);
}
.seo-link:hover{color:var(--blue-deep)}
.seo-link span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seo-link em{font-style:normal;font-family:var(--mono);font-size:10.5px;color:var(--muted-3);flex:none;font-variant-numeric:tabular-nums}

/* ═══ FAQ ══════════════════════════════════════════════════ */
.faq{max-width:820px}
.faq-item{border-bottom:1px solid var(--line-warm)}
.faq-q{
  width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:22px;
  padding:20px 2px;border:0;background:none;cursor:pointer;text-align:left;
  font-size:16px;font-weight:700;letter-spacing:-.024em;color:var(--ink);
  transition:color .2s var(--ease);
}
.faq-q:hover{color:var(--blue-deep)}
.faq-sign{position:relative;width:18px;height:18px;flex:none;margin-top:3px;color:var(--muted-2);transition:color .2s var(--ease)}
.faq-sign::before,.faq-sign::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;border-radius:2px;transform:translate(-50%,-50%)}
.faq-sign::before{width:13px;height:1.6px}
.faq-sign::after{width:1.6px;height:13px;transition:transform .3s var(--ease),opacity .3s var(--ease)}
.faq-item[data-open="true"] .faq-sign{color:var(--blue)}
.faq-item[data-open="true"] .faq-sign::after{transform:translate(-50%,-50%) scaleY(0);opacity:0}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s var(--ease)}
.faq-item[data-open="true"] .faq-a{grid-template-rows:1fr}
.faq-a > div{overflow:hidden}
.faq-a p{padding:0 60px 22px 2px;font-size:14.5px;color:var(--muted);line-height:1.68}

/* ═══ FOOTER ═══════════════════════════════════════════════ */
.site-footer{background:var(--dark);color:var(--dark-ink);padding-block:clamp(44px,4.4vw,62px) 28px;margin-top:clamp(32px,3.4vw,52px)}
.footer-top{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.footer-brand .brand-word{color:#fff}
.footer-brand .brand-sub{color:var(--dark-muted)}
.footer-blurb{margin-top:16px;font-size:13.5px;color:var(--dark-muted);line-height:1.65;max-width:34ch}
.footer-col h3{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--dark-muted);margin-bottom:14px}
.footer-col ul{display:flex;flex-direction:column;gap:9px}
.footer-col a{font-size:13.5px;color:var(--dark-ink);transition:color .18s var(--ease)}
.footer-col a:hover{color:#fff}
.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:clamp(34px,4vw,54px);padding-top:24px;border-top:1px solid var(--dark-line);
  font-size:12.5px;color:var(--dark-muted);
}
.footer-bottom a{color:var(--dark-ink)}
.footer-bottom a:hover{color:#fff}

/* ═══ DETAIL VIEWS ═════════════════════════════════════════ */
.detail-host{min-height:70vh;padding-bottom:clamp(48px,5vw,84px)}
.detail{width:100%;max-width:var(--shell);margin-inline:auto;padding:26px clamp(18px,3.6vw,40px) 0}
.crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-bottom:22px}
.crumbs a{font-weight:650;color:var(--ink-3);transition:color .18s}
.crumbs a:hover{color:var(--blue-deep)}
.crumbs svg{width:13px;height:13px;color:var(--muted-3);flex:none}
.crumb-now{color:var(--ink);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:42ch}

.detail-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:start;padding-bottom:clamp(26px,3vw,38px);border-bottom:1px solid var(--line-warm)}
.detail-ident{display:flex;gap:20px;min-width:0}
.detail-avatar{width:74px;height:74px;border-radius:var(--r-7);font-size:23px;flex:none}
.detail-avatar svg{width:32px;height:32px}
.detail-headline{min-width:0}
.detail-name{margin-top:12px;font-size:clamp(25px,3vw,38px);letter-spacing:-.04em;line-height:1.06}
.detail-sub{margin-top:12px;font-size:15.5px;color:var(--ink-3);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.detail-sub b{color:var(--blue-deep);font-weight:700}
.detail-dot{width:3px;height:3px;border-radius:50%;background:var(--muted-3);flex:none}
.detail-actions{display:flex;flex-direction:column;gap:9px;flex:none}

.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(26px,3.2vw,48px);margin-top:clamp(26px,3vw,40px);align-items:start}
.detail-block{margin-bottom:clamp(26px,3vw,40px)}
.detail-block > h2{font-size:19px;letter-spacing:-.03em;margin-bottom:16px}
.detail-prose{font-size:14.5px;color:var(--ink-3);line-height:1.7;max-width:64ch}

.factlist{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-6);overflow:hidden}
.dt-field{display:flex;flex-direction:column;gap:8px;background:var(--card);padding:16px 18px;min-width:0}
.dt-field dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-2);font-weight:500}
.dt-field dd{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:650;color:var(--ink);overflow-wrap:anywhere}

.detail-aside{position:sticky;top:calc(var(--hdr) + 16px);display:flex;flex-direction:column;gap:14px}
.aside-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-7);padding:20px;box-shadow:var(--sh-1)}
.aside-card h3{font-size:14.5px;letter-spacing:-.026em}
.aside-card p{margin-top:9px;font-size:13px;color:var(--muted);line-height:1.6}
.aside-card .btn{margin-top:15px;width:100%}
.aside-note{font-size:12px;color:var(--muted-2);line-height:1.6;padding:0 2px}

.people-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.people-head h2{font-size:19px;letter-spacing:-.03em}
.people-search{min-width:min(300px,100%);max-width:340px;flex:1}
.person-list{display:flex;flex-direction:column;gap:1px}
.person{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:var(--r-4);transition:background .18s var(--ease)}
.person:hover{background:var(--card)}
.person-avatar{
  display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:var(--r-3);
  background:var(--blue-wash);border:1px solid var(--blue-line);color:var(--blue-deep);
  font-size:11.5px;font-weight:750;
}
.person-main{display:flex;flex-direction:column;min-width:0;flex:1}
.person-name{font-size:14px;font-weight:700;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-name:hover{color:var(--blue-deep)}
.person-role{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.detail-more{margin-top:14px;font-size:12.5px;color:var(--muted)}

/* ═══ COOKIE CONSENT ═══════════════════════════════════════ */
.cookie{
  position:fixed;right:18px;bottom:18px;z-index:120;width:min(540px,calc(100vw - 36px));
  display:flex;align-items:center;gap:16px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-6);
  box-shadow:var(--sh-4);padding:12px 14px;
  animation:cookie-in .5s var(--ease) both .8s;
}
@keyframes cookie-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.cookie-text{min-width:0;flex:1}
.cookie h3{font-size:13px;letter-spacing:-.024em}
.cookie p{margin-top:3px;font-size:11.5px;color:var(--muted);line-height:1.5}
.cookie-actions{display:flex;gap:8px;flex:none}
.cookie-actions .btn{flex:1;padding:7px 10px;font-size:12.5px}

/* ═══ SCRIM ════════════════════════════════════════════════ */
.scrim{position:fixed;inset:0;z-index:100;background:rgba(15,30,50,.5);backdrop-filter:blur(3px);animation:fade .24s var(--ease)}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* ═══ REVEAL ═══════════════════════════════════════════════ */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */

@media (max-width:1180px){
  .workspace{grid-template-columns:250px minmax(0,1fr)}
  .card-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
  .skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
  .editorial{grid-template-columns:repeat(3,1fr)}
  .etile-lead{grid-column:span 3;grid-row:auto;min-height:260px}
  .seo-grid{grid-template-columns:repeat(3,1fr)}
  .detail-layout{grid-template-columns:minmax(0,1fr) 290px}
}

@media (max-width:1024px){
  .site-nav{
    position:fixed;inset:calc(var(--util) + var(--hdr)) 0 auto;z-index:95;
    flex-direction:column;align-items:stretch;gap:2px;margin:0;
    background:var(--paper);padding:16px clamp(18px,4vw,32px) 22px;
    border-bottom:1px solid var(--line-warm);box-shadow:var(--sh-3);
    transform:translateY(-14px);opacity:0;pointer-events:none;transition:.26s var(--ease);
  }
  .site-nav.is-open{transform:none;opacity:1;pointer-events:auto}
  .nav-link{padding:13px 14px;font-size:15.5px}
  .nav-link.is-active::after{left:14px;right:auto;width:16px;bottom:8px}
  .menu-toggle{display:flex}
  .header-actions .btn-primary,.header-lang{display:none}
  .hero-inner{padding-block:30px 38px}
  .searchbar-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .searchbar-submit{grid-column:1/-1}
  .searchbar-submit .btn{width:100%;height:46px}
  .figures{grid-template-columns:repeat(2,1fr);gap:24px}
  .trust{grid-template-columns:repeat(2,1fr)}
  .trust-item{padding:24px 22px 24px 0}
  .trust-item:nth-child(2n){border-right:0;padding-right:0}
  .trust-item:nth-child(2n+1){padding-left:0}
  .trust-item:nth-child(n+3){border-top:1px solid var(--line-warm)}
  .spec-columns{grid-template-columns:repeat(2,1fr)}
  .detail-layout{grid-template-columns:minmax(0,1fr)}
  .detail-aside{position:static;flex-direction:row;flex-wrap:wrap}
  .aside-card{flex:1;min-width:250px}
}

@media (max-width:900px){
  .workspace{grid-template-columns:minmax(0,1fr)}
  .filter-panel{
    position:fixed;top:0;left:0;bottom:0;z-index:110;
    width:min(384px,92vw);max-height:none;border-radius:0;border:0;
    border-right:1px solid var(--line);box-shadow:var(--sh-5);
    transform:translateX(-102%);transition:transform .32s var(--ease);
  }
  .filter-panel.is-open{transform:none}
  .filter-panel-head{padding:18px 18px 16px}
  .filter-panel-head .btn-quiet{display:none}
  .drawer-close{
    display:grid;place-items:center;width:36px;height:36px;flex:none;
    border:1px solid var(--line);border-radius:var(--r-4);background:var(--card);
    color:var(--muted);cursor:pointer;
  }
  .drawer-close svg{width:16px;height:16px}
  .drawer-foot{
    display:flex;gap:10px;flex:none;background:var(--card);
    padding:14px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);
  }
  .drawer-foot .btn{flex:1;padding-block:12px}
  .drawer-foot .btn-primary{flex:1.6}
  .editorial{grid-template-columns:repeat(2,1fr)}
  .etile-lead,.etile-wide{grid-column:span 2}
  .etile-lead{min-height:240px}
  .fac-grid{grid-template-columns:repeat(2,1fr)}
  .detail-hero{grid-template-columns:minmax(0,1fr)}
  .detail-actions{flex-direction:row;flex-wrap:wrap}
  .is-list .card-meta{width:100%;order:5}
}

@media (max-width:768px){
  :root{--hdr:64px}
  body{font-size:14.5px}
  .utility-note span{display:none}
  .hero-inner{padding-block:26px 32px}
  .hero-stats{grid-template-columns:repeat(2,1fr);gap:26px 0}
  .hero-stats > div:nth-child(3){border-left:0}
  .seo-grid{grid-template-columns:repeat(2,1fr)}
  .directory-bar{align-items:stretch}
  .directory-tools{width:100%;justify-content:space-between}
  .footer-top{grid-template-columns:repeat(2,1fr);gap:32px 24px}
  .footer-brand{grid-column:1/-1}
  .faq-a p{padding-right:20px}
  .detail-avatar{width:62px;height:62px;border-radius:var(--r-6);font-size:20px}
  .factlist{grid-template-columns:minmax(0,1fr)}
}

@media (max-width:640px){
  .card-grid,.skeleton-grid{grid-template-columns:minmax(0,1fr)}
  .searchbar-row{grid-template-columns:minmax(0,1fr)}
  .searchbar{border-radius:var(--r-7)}
  .hero-proof{gap:8px 18px;font-size:12px}
  .editorial{grid-template-columns:minmax(0,1fr)}
  .etile,.etile-lead,.etile-wide{grid-column:span 1;min-height:190px}
  .fac-grid{grid-template-columns:minmax(0,1fr)}
  .spec-columns{grid-template-columns:minmax(0,1fr)}
  .figures{grid-template-columns:repeat(2,1fr);gap:20px}
  .figures dd{font-size:clamp(26px,8vw,34px)}
  .trust{grid-template-columns:minmax(0,1fr)}
  .trust-item,.trust-item:nth-child(2n),.trust-item:nth-child(2n+1){padding:24px 0;border-right:0;border-top:1px solid var(--line-warm)}
  .trust-item:first-child{border-top:0}
  .cta-inner{gap:28px}
  .cta-actions{width:100%}
  .cta-actions .btn{flex:1}
  .cookie{left:12px;right:12px;bottom:12px;width:auto;flex-direction:column;align-items:stretch;gap:12px}
  .cookie-actions .btn{flex:1}
  .results-foot{flex-direction:column-reverse;align-items:stretch}
  .results-foot .btn{width:100%}
  .directory-tools{gap:8px}
}

@media (max-width:400px){
  .shell{padding-inline:15px}
  .brand-sub{display:none}
  .card{padding:16px}
  .seo-grid{grid-template-columns:minmax(0,1fr)}
  .footer-top{grid-template-columns:minmax(0,1fr)}
  .hero-stats > div{padding-inline:10px}
  .hero-stats dt{font-size:11px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .card:hover,.etile:hover,.fac-card:hover{transform:none}
  .reveal{opacity:1;transform:none}
}
