/*
 * Moving companies directory (page-companies.php). Scoped under .thl so nothing
 * leaks to other templates; same tokens as css/company.css (the profile page).
 * Enqueued after the compiled Tailwind output (functions/scripts.php), version
 * ThemeConstants::COMPANIES_VERSION. Palette: secondary #0D3659, primary #8F3985.
 */
.thl{font-family:Inter,system-ui,sans-serif;color:#0D3659;-webkit-font-smoothing:antialiased;line-height:1.5;padding-bottom:96px}
.thl *,.thl *::before,.thl *::after{box-sizing:border-box}
.thl h1,.thl h2,.thl p{margin:0}
.thl ul{list-style:none;margin:0;padding:0}
.thl a{color:#8F3985;text-decoration:none}
.thl a:hover{color:#0D3659}
.thl img{display:block;max-width:100%}
.thl svg{flex:none}
.thl .wrap{max-width:1200px;margin:0 auto;padding:0 32px}
.thl .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Buttons */
.thl .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 20px;border-radius:10px;font-weight:600;font-size:15px;line-height:1;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.thl .btn-p{background:#8F3985;color:#fff}
.thl .btn-p:hover{background:#6E2B66;color:#fff}
.thl .btn-o{background:#fff;color:#0D3659;border-color:#CBD2E0}
.thl .btn-o:hover{border-color:#0D3659;color:#0D3659}
.thl .btn-w{background:#fff;color:#0D3659}
.thl .btn-w:hover{background:#F1E7F0;color:#0D3659}
.thl .btn:focus-visible,.thl a:focus-visible,.thl button:focus-visible,.thl input:focus-visible{outline:3px solid #F59E0B;outline-offset:2px}

/* Hero */
.thl-hero{background:#0D3659;color:#fff;padding:28px 0 104px;position:relative;overflow:hidden}
.thl-hero::after{content:"";position:absolute;right:-160px;top:-200px;width:620px;height:620px;border-radius:50%;background:radial-gradient(closest-side,rgba(143,57,133,.45),rgba(143,57,133,0));pointer-events:none}
.thl-hero .wrap{position:relative;z-index:1}
.thl-crumb{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;color:#C9D6F5;margin-bottom:36px}
.thl-crumb a{color:#C9D6F5}
.thl-crumb a:hover{color:#fff}
.thl-crumb b{color:#fff;font-weight:600}
.thl-eyebrow{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);font-size:13px;font-weight:600;color:#fff}
.thl-eyebrow .dot{width:8px;height:8px;border-radius:50%;background:#34D399;box-shadow:0 0 0 3px rgba(52,211,153,.25)}
.thl h1.thl-title{font-size:52px;line-height:1.05;font-weight:800;letter-spacing:-.025em;color:#fff;margin-top:18px;max-width:760px}
.thl-lede{font-size:18px;line-height:1.55;color:#C9D6F5;max-width:620px;margin-top:16px}
.thl-search{display:flex;align-items:center;gap:8px;max-width:640px;margin-top:28px;background:#fff;border-radius:14px;padding:6px 6px 6px 18px;box-shadow:0 18px 40px rgba(0,0,0,.18)}
.thl-search .ic{color:#7A8699}
.thl-search input{flex:1;min-width:0;height:48px;border:0;outline:0;background:transparent;font-size:16px;font-family:inherit;color:#0D3659;padding:0 4px}
.thl-search input::placeholder{color:#7A8699}
.thl-search input::-webkit-search-cancel-button{cursor:pointer}
.thl-search:focus-within{box-shadow:0 0 0 3px #F59E0B,0 18px 40px rgba(0,0,0,.18)}
.thl-search input:focus-visible{outline:0}
.thl-search .btn{height:48px}

.thl-hero-grid{display:flex;gap:48px;align-items:center;justify-content:space-between}
.thl-hero-main{flex:1 1 560px;min-width:0}
.thl-top{width:380px;flex:none;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:20px;backdrop-filter:blur(6px)}
.thl-top-t{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#F59E0B;margin:0 0 10px}
.thl-top ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.thl-top a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:#fff;color:#0D3659;transition:transform .2s,box-shadow .2s}
.thl-top a:hover{color:#0D3659;transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.thl-top .n{width:22px;font-size:13px;font-weight:800;color:#8F3985;text-align:center;flex:none}
.thl-top img{width:44px;height:44px;border-radius:12px;border:1px solid #E3E7EF;object-fit:contain;flex:none;background:#fff}
.thl-top .c{min-width:0;display:grid;gap:2px}
.thl-top .c b{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thl-top .c > span{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#5B6B82}

/* Stat tiles */
.thl-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:-56px;position:relative;z-index:2}
.thl-stat{background:#fff;border:1px solid #E3E7EF;border-radius:16px;padding:20px 22px;display:flex;gap:14px;align-items:center;box-shadow:0 10px 30px rgba(13,54,89,.08)}
.thl-stat .ic{width:44px;height:44px;border-radius:12px;background:#F1E7F0;display:flex;align-items:center;justify-content:center;flex:none}
.thl-stat .ic svg{width:22px;height:22px}
.thl-stat b{display:block;font-size:24px;font-weight:800;line-height:1;letter-spacing:-.02em}
.thl-stat .l{display:block;font-size:13px;color:#5B6B82;margin-top:4px;line-height:1.3}

/* Layout: list + sticky side panel */
.thl-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start;margin-top:40px}
.thl-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;font-size:14.5px;color:#5B6B82}
.thl-bar b{color:#0D3659;font-weight:700}
.thl-bar .sort{font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;background:#F5F7FF;color:#0D3659}
.thl-bar .clear{font-size:14px;font-weight:600}
.thl-list{display:grid;gap:16px}

/* Company row */
.thl-card{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:22px;align-items:start;padding:22px;background:#fff;border:1px solid #E3E7EF;border-radius:18px;transition:border-color .2s,box-shadow .2s}
.thl-card:hover{border-color:#C9A3C4;box-shadow:0 14px 36px rgba(13,54,89,.08)}
.thl-logo{position:relative;z-index:1;width:96px;height:96px;border-radius:18px;border:1px solid #E3E7EF;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.thl-logo img{width:84px;height:84px;object-fit:contain;border-radius:12px}
.thl-body{display:grid;gap:10px;min-width:0}
.thl-head{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap}
.thl h2.thl-name{font-size:20px;font-weight:800;line-height:1.2;letter-spacing:-.01em;overflow-wrap:anywhere}
.thl-name a{color:#0D3659}
.thl-name a::after{content:"";position:absolute;inset:0;border-radius:18px}
.thl-card:hover .thl-name a{color:#8F3985}
.thl-ok{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;background:#E8F5EC;color:#166534;font-size:12px;font-weight:700;white-space:nowrap}
.thl-rate{display:flex;align-items:center;gap:8px;font-size:14px;color:#5B6B82}
.thl-rate b{font-size:15px;font-weight:800;color:#0D3659}
.thl-facts{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;color:#3B4A60}
.thl-facts li{display:inline-flex;align-items:center;gap:7px}
.thl-facts svg{color:#7A8699}
.thl-open.is-open{color:#166534;font-weight:600}
.thl-open.is-open svg{color:#1A7F37}
.thl-open[hidden]{display:none}
.thl-about{font-size:14.5px;line-height:1.6;color:#4A5568;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.thl-svc{display:flex;flex-wrap:wrap;gap:8px}
.thl-svc li{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:999px;background:#F5F7FF;font-size:13px;font-weight:600;color:#0D3659}
.thl-svc svg{color:#8F3985}
.thl-acts{position:relative;z-index:1;display:grid;gap:8px;width:170px}
.thl-acts .btn{width:100%}

/* Side panel */
.thl-side{position:sticky;top:110px;display:grid;gap:16px}
.thl-cta{background:#0D3659;border-radius:20px;padding:26px;color:#fff;display:grid;gap:10px;position:relative;overflow:hidden}
.thl-cta::after{content:"";position:absolute;right:-90px;bottom:-110px;width:260px;height:260px;border-radius:50%;background:radial-gradient(closest-side,rgba(143,57,133,.55),rgba(143,57,133,0));pointer-events:none}
.thl-cta > *{position:relative;z-index:1}
.thl-cta .kicker{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#F59E0B}
.thl-cta .big{font-size:24px;font-weight:800;line-height:1.15;letter-spacing:-.02em}
.thl-cta .t{font-size:14.5px;line-height:1.55;color:#C9D6F5}
.thl-cta .btn{margin-top:8px;width:100%;height:50px}
.thl-cta .tel{justify-self:center;font-size:14px;font-weight:600;color:#fff}
.thl-cta .tel:hover{color:#F1E7F0;text-decoration:underline}
.thl-box{background:#fff;border:1px solid #E3E7EF;border-radius:20px;padding:22px 22px 10px}
.thl h2.h3{font-size:17px;font-weight:800;margin:0 0 6px;color:#0D3659}
.thl-hubs a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #EDF0F5;font-size:14.5px;font-weight:600;color:#0D3659}
.thl-hubs li:last-child a{border-bottom:0}
.thl-hubs a svg{color:#9AA6B8;transition:transform .2s,color .2s}
.thl-hubs a:hover{color:#8F3985}
.thl-hubs a:hover svg{color:#8F3985;transform:translateX(3px)}

/* Pagination (paginate_links output) */
.thl-pages{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:32px}
.thl-pages .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 10px;border-radius:10px;border:1px solid #DDE3EE;background:#fff;font-weight:600;font-size:14.5px;color:#0D3659}
.thl-pages a.page-numbers:hover{border-color:#0D3659;color:#0D3659}
.thl-pages .page-numbers.current{background:#0D3659;border-color:#0D3659;color:#fff}
.thl-pages .page-numbers.dots{border-color:transparent;background:transparent;min-width:24px;padding:0}

/* Empty search */
.thl-empty{padding:40px 28px;text-align:center;border:1px dashed #CBD2E0;border-radius:18px;background:#FAFBFE}
.thl-empty b{display:block;font-size:19px;font-weight:800}
.thl-empty p{margin-top:8px;font-size:15px;color:#5B6B82;max-width:440px;margin-left:auto;margin-right:auto}
.thl-empty .row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}

/* Page content from the editor (empty today) */
.thl-prose{margin-top:56px;padding:32px;border:1px solid #E3E7EF;border-radius:20px;font-size:16px;line-height:1.65;color:#3B4A60}
.thl-prose h2{font-size:24px;font-weight:800;margin:0 0 12px;color:#0D3659}
.thl-prose p+p{margin-top:12px}

/* Stars: grey row with a yellow row clipped to the rating */
.thl .stars{position:relative;display:inline-flex;vertical-align:middle;width:max-content}
.thl .stars .b,.thl .stars .f{display:inline-flex;gap:1px}
.thl .stars .b{color:#E3E7EF}
.thl .stars .f{position:absolute;left:0;top:0;overflow:hidden;color:#F59E0B;white-space:nowrap}

@media (max-width:1023px){
  .thl-grid{grid-template-columns:minmax(0,1fr)}
  .thl-top{display:none}
  .thl-side{position:static;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .thl-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
  .thl{padding-bottom:64px}
  .thl .wrap{padding:0 16px}
  .thl-hero{padding:20px 0 72px}
  .thl-crumb{margin-bottom:20px}
  .thl h1.thl-title{font-size:32px;margin-top:14px}
  .thl-lede{font-size:15px;margin-top:12px}
  .thl-search{margin-top:22px;padding:5px 5px 5px 14px;border-radius:12px}
  .thl-search input{height:44px;font-size:15px}
  .thl-search .btn{height:44px;padding:0 14px;font-size:14px}
  .thl-stats{gap:10px;margin-top:-44px}
  .thl-stat{padding:14px;gap:10px;border-radius:14px}
  .thl-stat .ic{width:36px;height:36px}
  .thl-stat .ic svg{width:18px;height:18px}
  .thl-stat b{font-size:19px}
  .thl-stat .l{font-size:11.5px}
  .thl-grid{margin-top:28px;gap:24px}
  .thl-search .wide{display:none}
  .thl-bar .sort{display:none}
  .thl-card{grid-template-columns:64px minmax(0,1fr);gap:12px 14px;padding:16px;border-radius:16px}
  .thl-body{display:contents}
  .thl-body > :not(.thl-head){grid-column:1 / -1}
  .thl-head{align-self:center}
  .thl-acts{margin-top:4px}
  .thl-name a::after{border-radius:16px}
  .thl-logo{width:64px;height:64px;border-radius:14px}
  .thl-logo img{width:56px;height:56px;border-radius:10px}
  .thl h2.thl-name{font-size:17px}
  .thl-facts{font-size:13.5px;gap:6px 14px}
  .thl-about{font-size:14px}
  .thl-acts{grid-column:1 / -1;width:auto;grid-template-columns:1fr 1fr}
  .thl-acts .btn{height:44px;font-size:14px}
  .thl-side{grid-template-columns:minmax(0,1fr)}
  .thl-cta{padding:22px}
  .thl-prose{padding:20px;margin-top:36px}
}
@media (max-width:380px){
  .thl-search .btn{padding:0 12px}
}
